You are here

function uc_extra_fields_pane_views_get_fields in Extra Fields Checkout Pane 7

Same name and namespace in other branches
  1. 6.2 views/uc_extra_fields_pane.views.inc \uc_extra_fields_pane_views_get_fields()

Get all uc_extra_fields_pane fields.

Return value

array

1 call to uc_extra_fields_pane_views_get_fields()
uc_extra_fields_pane_views_data in views/uc_extra_fields_pane.views.inc
Implementation of hook_views_data().

File

views/uc_extra_fields_pane.views.inc, line 103
Provide views data and handlers for Extra Fields Pane

Code

function uc_extra_fields_pane_views_get_fields() {
  $fields =& drupal_static(__FUNCTION__);
  if (!isset($fields)) {

    // Make sure all fields are loaded.
    $ucxf_fields = UCXF_FieldList::getAllFields();
    $fields = array();
    $fields_by_pane = array(
      'extra_delivery' => UCXF_FieldList::getFieldsFromPane('extra_delivery'),
      'extra_billing' => UCXF_FieldList::getFieldsFromPane('extra_billing'),
      'extra_address' => UCXF_FieldList::getAllAddressFields(),
    );
    foreach ($fields_by_pane as $pane_type => $fieldlist) {
      foreach ($fieldlist as $fieldname => $field) {
        $fields[$pane_type][$fieldname] = clone $field;
        switch ($pane_type) {
          case 'extra_delivery':
            $fields[$pane_type][$fieldname]->element_type = UCXF_Value::UCXF_VALUE_ORDER_DELIVERY;
            $fields[$pane_type][$fieldname]->prefix = t('Delivery address');
            $fields[$pane_type][$fieldname]->suffix = 'delivery';
            break;
          case 'extra_billing':
            $fields[$pane_type][$fieldname]->element_type = UCXF_Value::UCXF_VALUE_ORDER_BILLING;
            $fields[$pane_type][$fieldname]->prefix = t('Billing address');
            $fields[$pane_type][$fieldname]->suffix = 'billing';
            break;
          case 'extra_address':
            $fields[$pane_type][$fieldname]->element_type = UCXF_Value::UCXF_VALUE_ADDRESS;
            break;
        }
      }
    }
  }
  return $fields;
}