You are here

function uc_extra_fields_pane_token_list in Extra Fields Checkout Pane 6.2

Same name and namespace in other branches
  1. 6 uc_extra_fields_pane.module \uc_extra_fields_pane_token_list()

Implementation of hook_token_list().

Parameters

string $type:

Return value

array

File

./uc_extra_fields_pane.module, line 822
Module: uc_extra_fields_pane.module

Code

function uc_extra_fields_pane_token_list($type = 'all') {
  $tokens = array();
  if ($type == 'order' || $type == 'ubercart' || $type == 'all') {
    $result = db_query("SELECT label, pane_type, db_name FROM {uc_extra_fields}");
    while ($field_data = db_fetch_array($result)) {
      $field = UCXF_FieldList::createField($field_data['pane_type']);
      $field
        ->from_array($field_data);
      $db_name = str_replace('ucxf_', '', $field->db_name);
      $pane_types = $field->pane_types;

      // Only when $field['pane_type'] is 'extra_delivery|extra_billing' we have more then one pane type
      foreach ($pane_types as $pane_type) {
        switch ($pane_type) {
          case 'extra_delivery':
            $token_name = 'extra-extra_delivery-' . $db_name;
            break;
          case 'extra_billing':
            $token_name = 'extra-extra_billing-' . $db_name;
            break;
          default:
            $token_name = 'extra-' . $field->pane_type . '-' . $db_name;
            break;
        }
        $pane_title = uc_extra_fields_pane_get_pane_title($pane_type);

        // Add token
        $tokens['order'][$token_name] = t('!pane_title: !label, formatted', array(
          '!pane_title' => $pane_title,
          '!label' => $field
            ->output('label'),
        ));
        $tokens['order'][$token_name . '-raw'] = t('!pane_title: !label, raw', array(
          '!pane_title' => $pane_title,
          '!label' => $field
            ->output('label'),
        ));
      }
    }
  }
  return $tokens;
}