You are here

protected function UCXF_Pane::order_edit_form in Extra Fields Checkout Pane 6.2

View the editable form @access protected

Return value

array

1 call to UCXF_Pane::order_edit_form()
UCXF_AddressPane::order_edit_form in class/UCXF_AddressPane.class.php
View the editable form @access protected
1 method overrides UCXF_Pane::order_edit_form()
UCXF_AddressPane::order_edit_form in class/UCXF_AddressPane.class.php
View the editable form @access protected

File

class/UCXF_Pane.class.php, line 278
Contains the UCXF_Pane class.

Class

UCXF_Pane
Base class for checkout panes and order panes implemented by Extra Fields Pane.

Code

protected function order_edit_form() {
  $fields = $this
    ->loadFields();
  $form['ucxf_' . $this->pane_id] = array(
    '#type' => 'fieldset',
    '#title' => t('Additional order information'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
    '#tree' => TRUE,
  );

  // Dynamically generate form elements
  if (count($fields)) {
    foreach ($fields as $field) {
      if ($field->enabled) {
        $generated_field = $field
          ->generate();
        $order_field_name = $this
          ->getFieldName($field);
        $default = isset($this->order->{$order_field_name}) ? $this->order->{$order_field_name} : NULL;
        if (!is_null($default) || !isset($generated_field['#default_value'])) {
          $generated_field['#default_value'] = $default;
        }

        // On the order edit form, a generated field shouldn't be a hidden field.
        // In this case the field will be set to a normal textfield, so it's editable.
        if ($generated_field['#type'] == 'hidden') {
          $generated_field['#type'] = 'textfield';
          if (is_null($default)) {

            // Set a default value if there is no saved value for.
            $generated_field['#default_value'] = $generated_field['#value'];
          }

          // Unset value, field already has an default value
          unset($generated_field['#value']);

          // Set title and size of field.
          $generated_field['#title'] = $field
            ->output('label');
          $generated_field['#size'] = 32;
        }

        // In case of select fields, add default value as an option if it is not an available option yet.
        if ($generated_field['#type'] == 'select') {
          $default_value = $generated_field['#default_value'];
          if ($default_value != '' && !isset($generated_field['#options'][$default_value])) {
            $generated_field['#options'][$default_value] = t('Deleted option: @option', array(
              '@option' => $default_value,
            ));
          }
        }

        // Do not make any field required on the edit form
        $generated_field['#required'] = FALSE;

        // Add generated field to form
        $form['ucxf_' . $this->pane_id][$order_field_name] = $generated_field;
      }
    }
  }
  return $form;
}