function uc_extra_fields_pane_views_data in Extra Fields Checkout Pane 7
Same name and namespace in other branches
- 6.2 views/uc_extra_fields_pane.views.inc \uc_extra_fields_pane_views_data()
Implementation of hook_views_data().
File
- views/
uc_extra_fields_pane.views.inc, line 10 - Provide views data and handlers for Extra Fields Pane
Code
function uc_extra_fields_pane_views_data() {
$data = array();
// Define the base group of this table.
$data['uc_extra_fields_values']['table']['group'] = t('Ubercart order');
$data['uc_extra_fields_values']['table']['join']['uc_order_products'] = array(
'left_field' => 'order_id',
'field' => 'element_id',
);
$data['uc_extra_fields_values']['table']['join']['uc_orders'] = array(
'left_field' => 'order_id',
'field' => 'element_id',
);
$data['uc_extra_fields_values']['table']['join']['uc_addresses'] = array(
'left_field' => 'aid',
'field' => 'element_id',
);
$panes = uc_extra_fields_pane_views_get_fields();
foreach ($panes as $pane_type => $fields) {
switch ($pane_type) {
case 'extra_delivery':
case 'extra_billing':
// Fields for Ubercart order and Ubercart Order Products.
foreach ($fields as $field) {
$table_name = 'uc_extra_fields_pane_values_' . $field->db_name . '_' . $field->suffix;
$data[$table_name] = array(
'table' => array(
'group' => t('Order') . ': ' . $field->prefix,
'join' => array(
'uc_orders' => array(
'table' => 'uc_extra_fields_values',
'left_table' => 'uc_orders',
'left_field' => 'order_id',
'field' => 'element_id',
'extra' => array(
array(
'field' => 'field_id',
'value' => $field->field_id,
),
array(
'field' => 'element_type',
'value' => $field->element_type,
),
),
),
'uc_order_products' => array(
'table' => 'uc_extra_fields_values',
'left_table' => 'uc_order_products',
'left_field' => 'order_id',
'field' => 'element_id',
'extra' => array(
array(
'field' => 'field_id',
'value' => $field->field_id,
),
array(
'field' => 'element_type',
'value' => $field->element_type,
),
),
),
),
),
);
// All fields in the table are named 'value'.
$data[$table_name]['value'] = uc_extra_fields_pane_views_fetch_field($field);
}
break;
case 'extra_address':
// Fields for Ubercart Addresses
foreach ($fields as $field) {
$table_name = 'uc_extra_fields_pane_values_' . $field->db_name;
$data[$table_name] = array(
'table' => array(
'group' => t('Ubercart Addresses'),
'join' => array(
'uc_addresses' => array(
'table' => 'uc_extra_fields_values',
'left_table' => 'uc_addresses',
'left_field' => 'aid',
'field' => 'element_id',
'extra' => array(
array(
'field' => 'field_id',
'value' => $field->field_id,
),
array(
'field' => 'element_type',
'value' => $field->element_type,
),
),
),
),
),
);
// All fields in the table are named 'value'.
$data[$table_name]['value'] = uc_extra_fields_pane_views_fetch_field($field);
}
break;
}
}
return $data;
}