You are here

function theme_uc_extra_fields_pane_uc_store_address_fields in Extra Fields Checkout Pane 6.2

This function overrides the theme function theme_uc_store_address_fields_form() in uc_store.module Adds tabledrag, the column 'weight' and the column 'action'.

Parameters

array $form:

Return value

string

File

./uc_extra_fields_pane.admin.inc, line 246
Admin functions for adding, editing and deleting fields

Code

function theme_uc_extra_fields_pane_uc_store_address_fields($form) {
  if (isset($form['uc_address_fields'])) {

    // We're dealing with an Ubercart version dated July 18, 2012 or later.
    // Some fields are structured differently.
    $uc_version_20120718 = TRUE;
  }
  else {
    $uc_version_20120718 = FALSE;
  }
  $title = t('Title');
  if (function_exists('i18n_variable_form_submit') && $uc_version_20120718) {
    $title .= ' - ' . t('This is a multilingual variable.');
  }
  $header = array(
    t('Enabled'),
    t('Field'),
    $title,
    t('Required'),
    array(
      'data' => t('List position'),
      'sort' => 'asc',
    ),
    t('Action'),
  );
  foreach (element_children($form['fields']) as $field) {
    if ($uc_version_20120718) {
      $row = array(
        array(
          'data' => drupal_render($form['uc_address_fields'][$field]),
          'align' => 'center',
        ),
        drupal_render($form['fields'][$field]['default']),
        drupal_render($form['fields'][$field]['uc_field_' . $field]),
        drupal_render($form['uc_address_fields_required'][$field]),
        drupal_render($form['uc_address_fields_weight'][$field]),
      );
    }
    else {
      $row = array(
        array(
          'data' => drupal_render($form['fields'][$field]['enabled']),
          'align' => 'center',
        ),
        drupal_render($form['fields'][$field]['default']),
        drupal_render($form['fields'][$field]['title']),
        drupal_render($form['fields'][$field]['required']),
        drupal_render($form['fields'][$field]['weight']),
      );
    }

    // Add Edit/Delete link to fields that are editable.
    if (isset($form['fields'][$field]['action'])) {
      $row[] = drupal_render($form['fields'][$field]['action']);
    }
    else {
      $row[] = '';
    }
    $rows[$field] = array(
      'data' => $row,
      'class' => 'draggable',
      '#weight' => $form['fields'][$field]['#weight'],
    );
  }

  // Sort rows by weight.
  uasort($rows, 'element_sort');
  drupal_add_tabledrag('uc-address-fields-table', 'order', 'sibling', 'uc-address-fields-table-ordering');
  $output = drupal_render($form['add_field']);
  $output .= theme('table', $header, $rows, array(
    'id' => 'uc-address-fields-table',
  ));
  $output .= drupal_render($form['add_field2']);
  $output .= drupal_render($form);
  return $output;
}