function theme_fel_fields_multiple_form in Form element layout 7
Theme override for 'field_multiple_value_form'.
See also
theme_field_multiple_value_form()
File
- modules/
fel_fields/ fel_fields.module, line 268 - Field support for Form element layout (fel.module).
Code
function theme_fel_fields_multiple_form($variables) {
$element = $variables['element'];
$output = '';
if (isset($element['#cardinality']) && ($element['#cardinality'] > 1 || $element['#cardinality'] == FIELD_CARDINALITY_UNLIMITED)) {
$table_id = drupal_html_id($element['#field_name'] . '_values');
$order_class = $element['#field_name'] . '-delta-order';
$required = !empty($element['#required']) ? theme('form_required_marker', $variables) : '';
$label_classes = !empty($element['#title_classes']) ? ' class="' . implode(' ', $element['#title_classes']) . '"' : '';
$description_before = (isset($element['#description_display']) and $element['#description_display'] == 'before');
$label = '<label' . $label_classes . '>' . t('!title !required', array(
'!title' => $element['#title'],
'!required' => $required,
)) . '</label>';
$fel_items = array();
if (!$description_before) {
$header = array(
array(
'data' => $label,
'colspan' => 2,
'class' => array(
'field-label',
),
),
t('Order'),
);
}
else {
$fel_items['title'] = $label;
}
if (!empty($element['#description'])) {
$fel_items['description'] = theme('fel_form_element_description', $variables);
}
$rows = array();
// Sort items according to '_weight' (needed when the form comes back after
// preview or failed validation).
$items = array();
foreach (element_children($element) as $key) {
if ($key === 'add_more') {
$add_more_button =& $element[$key];
}
else {
$items[] =& $element[$key];
}
}
usort($items, '_field_sort_items_value_helper');
// Add the items as table rows.
foreach ($items as $key => $item) {
$item['_weight']['#attributes']['class'] = array(
$order_class,
);
$delta_element = drupal_render($item['_weight']);
$cells = array(
array(
'data' => '',
'class' => array(
'field-multiple-drag',
),
),
drupal_render($item),
array(
'data' => $delta_element,
'class' => array(
'delta-order',
),
),
);
$rows[] = array(
'data' => $cells,
'class' => array(
'draggable',
),
);
}
$table_args = array(
'rows' => $rows,
'attributes' => array(
'id' => $table_id,
'class' => array(
'field-multiple-table',
),
),
);
if (!$description_before) {
$table_args['header'] = $header;
}
$fel_items['children'] = theme('table', $table_args);
$output = '<div class="form-item">';
$output .= fel_order_output($element, $fel_items);
$output .= '<div class="clearfix">' . drupal_render($add_more_button) . '</div>';
$output .= '</div>';
drupal_add_tabledrag($table_id, 'order', 'sibling', $order_class);
}
else {
foreach (element_children($element) as $key) {
$output .= drupal_render($element[$key]);
}
}
return $output;
}