function theme_date_facets_tabledrag_form in Date Facets 7
Add a tabledrag table for date ranges on the given date facet.
File
- ./
date_facets.module, line 146 - Provides date range facets that are similar to implementations in major search engines.
Code
function theme_date_facets_tabledrag_form($variables) {
$form = $variables['form'];
if (is_array($form['widget']['widget_settings']['ranges'])) {
$header = array(
array(
'data' => t('Name !required', array(
'!required' => '<span class="form-required" title="' . t('This field is required.') . '">*</span>',
)),
),
array(
'data' => t('Date Range !required', array(
'!required' => '<span class="form-required" title="' . t('This field is required.') . '">*</span>',
)),
'colspan' => 2,
),
array(
'data' => t('Weight'),
),
array(
'data' => t('Delete'),
),
);
drupal_add_tabledrag('facetapi-date-range-query-date-ranges', 'order', 'self', 'date-range-weight');
$rows = array();
foreach (element_children($form['widget']['widget_settings']['ranges']) as $range_key) {
$row = array();
// We remove the #titles from each of the fields because the titles are
// already in the table's header row.
unset($form['widget']['widget_settings']['ranges'][$range_key]['label']['#title']);
// We want the label and machine name fields in the same cell.
$row[] = drupal_render($form['widget']['widget_settings']['ranges'][$range_key]['label']) . drupal_render($form['widget']['widget_settings']['ranges'][$range_key]['machine_name']);
foreach (array(
'date_range_start',
'date_range_end',
) as $element) {
$temp_row = '';
// We want the op, amount, and unit fields in the same cell for both
// start and end date ranges.
foreach (array(
'op',
'amount',
'unit',
) as $item) {
unset($form['widget']['widget_settings']['ranges'][$range_key][$element . '_' . $item]['#title']);
$temp_row .= drupal_render($form['widget']['widget_settings']['ranges'][$range_key][$element . '_' . $item]);
}
$row[] = $temp_row;
}
// Add the weight and delete checkbox fields.
foreach (array(
'weight',
'delete',
) as $element) {
unset($form['widget']['widget_settings']['ranges'][$range_key][$element]['#title']);
$row[] = drupal_render($form['widget']['widget_settings']['ranges'][$range_key][$element]);
}
$rows[] = array(
'data' => $row,
'class' => array(
'draggable',
),
);
}
$output = theme('table', array(
'header' => $header,
'rows' => $rows,
'attributes' => array(
'id' => 'facetapi-date-range-query-date-ranges',
),
));
$form['widget']['widget_settings']['date_ranges']['ranges'] = array(
'#type' => 'markup',
'#markup' => $output,
'#weight' => 0,
);
}
return drupal_render_children($form);
}