function uc_extra_fields_pane_order_handler in Extra Fields Checkout Pane 6
1 string reference to 'uc_extra_fields_pane_order_handler'
File
- ./
uc_extra_fields_pane.module, line 569
Code
function uc_extra_fields_pane_order_handler($op, $arg1) {
switch ($op) {
case 'edit-theme':
$output = '<table class="order-edit-table">
<tr><th>' . $arg1['extra_fields_billing']['#title'] . '</th></tr>';
foreach (element_children($arg1['extra_fields_billing']) as $field) {
$title = $arg1['extra_fields_billing'][$field]['#title'];
unset($arg1['extra_fields_billing'][$field]['#title']);
unset($arg1['extra_fields_billing'][$field]['#description']);
$output .= '<tr><td><strong>' . $title . '</strong>: ' . drupal_render($arg1['extra_fields_billing'][$field]) . '</td></tr>';
}
$output .= '</table>';
$output .= '<table class="order-edit-table">
<tr><th>' . $arg1['extra_fields_delivery']['#title'] . '</th></tr>';
foreach (element_children($arg1['extra_fields_delivery']) as $field) {
$title = $arg1['extra_fields_delivery'][$field]['#title'];
unset($arg1['extra_fields_delivery'][$field]['#title']);
unset($arg1['extra_fields_delivery'][$field]['#description']);
$output .= '<tr><td><strong>' . $title . '</strong>: ' . drupal_render($arg1['extra_fields_delivery'][$field]) . '</td></tr>';
}
$output .= '</table>';
return $output;
case 'edit-process':
$fields = uc_extra_fields_pane_load_fields_from_db();
$changes = array();
$changes['extra_fields'] = array();
// dynamically generate form elements
if (count($fields)) {
foreach ($fields as $field) {
if (isset($arg1[$field['field'] . '_billing'])) {
$changes['extra_fields'][$field['field'] . '_billing'] = $arg1[$field['field'] . '_billing'];
}
if (isset($arg1[$field['field'] . '_delivery'])) {
$changes['extra_fields'][$field['field'] . '_delivery'] = $arg1[$field['field'] . '_delivery'];
}
}
}
return $changes;
case 'edit-form':
$form = array();
$billing_enabled = variable_get('uc_pane_extra_billing_enabled', TRUE);
$delivery_enabled = variable_get('uc_pane_extra_delivery_enabled', TRUE);
if (!$delivery_enabled && !$billing_enabled) {
return $form;
}
if ($billing_enabled) {
$form['extra_fields_billing'] = array(
'#type' => 'fieldset',
'#title' => t(variable_get('uc_extra_fields_pane_billing_pane_title', 'Additional billing information')),
'#collapsible' => FALSE,
'#collapsed' => FALSE,
);
}
if ($delivery_enabled) {
$form['extra_fields_delivery'] = array(
'#type' => 'fieldset',
'#title' => t(variable_get('uc_extra_fields_pane_delivery_pane_title', 'Additional delivery information')),
'#collapsible' => FALSE,
'#collapsed' => FALSE,
);
}
$fields = uc_extra_fields_pane_load_fields_from_db();
// dynamically generate form elements
if (count($fields)) {
foreach ($fields as $field) {
if ($delivery_enabled) {
$form['extra_fields_delivery'][$field['field'] . '_delivery'] = array(
'#type' => 'textfield',
'#title' => t($field['title']),
'#description' => t($field['description']),
'#size' => 32,
'#maxlength' => 255,
'#required' => $field['required'],
'#default_value' => isset($arg1->extra_fields[$field['field'] . '_delivery']) ? $arg1->extra_fields[$field['field'] . '_delivery'] : NULL,
);
}
if ($billing_enabled) {
$form['extra_fields_billing'][$field['field'] . '_billing'] = array(
'#type' => 'textfield',
'#title' => t($field['title']),
'#description' => t($field['description']),
'#size' => 32,
'#maxlength' => 255,
'#required' => $field['required'],
'#default_value' => isset($arg1->extra_fields[$field['field'] . '_billing']) ? $arg1->extra_fields[$field['field'] . '_billing'] : NULL,
);
}
}
}
return $form;
// customer or administrator order detail page.
case 'customer':
case 'view':
$fields = uc_extra_fields_pane_load_fields_from_db();
$output = "";
$values = db_fetch_array(db_query("select * from {uc_extra_fields_values} where order_id=%d", $arg1->order_id));
$billing_fields = array();
$delivery_fields = array();
if (count($fields)) {
foreach ($fields as $field) {
// warning: user input --> check_plain
if (isset($values[$field['field'] . '_billing'])) {
$billing_fields[] = t($field['title']) . ': ' . check_plain($values[$field['field'] . '_billing']) . '<br />';
}
if (isset($values[$field['field'] . '_delivery'])) {
$delivery_fields[] = t($field['title']) . ': ' . check_plain($values[$field['field'] . '_delivery']) . '<br />';
}
}
}
if (count($billing_fields)) {
$output = '<strong><small>' . t(variable_get('uc_extra_fields_pane_billing_pane_title', 'Additional billing information')) . '</small></strong><br />' . implode('<br />', $billing_fields);
}
if (count($delivery_fields)) {
$output .= '<strong><small>' . t(variable_get('uc_extra_fields_pane_delivery_pane_title', 'Additional delivery information')) . '</small></strong><br />' . implode('<br />', $delivery_fields);
}
return $output;
}
}