function theme_entityreference_view_widget_widget in Entity Reference View Widget 7.2
Theme function for the whole widget.
File
- ./
entityreference_view_widget.module, line 528 - Entityreference view widget module.
Code
function theme_entityreference_view_widget_widget($variables) {
$widget = $variables['widget'];
$settings = $widget['add_more']['#ervw_settings'];
$order_class = drupal_html_class($settings['element'] . '-delta-order');
$required = !empty($settings['instance']['required']) ? theme('form_required_marker', $variables) : '';
$header = array(
array(
'data' => '<label>' . t('!title !required', array(
'!title' => $widget['#title'],
'!required' => $required,
)) . "</label>",
'colspan' => 2,
'class' => array(
'field-label',
),
),
);
if ($settings['field']['cardinality'] !== '1') {
$header[] = array(
'data' => t('Order'),
'class' => array(
'tabledrag-hide',
),
);
}
$rows = array();
// Sort items according to '_weight' (needed when the form comes back after
// preview or failed validation).
$items = array();
foreach (element_children($widget) as $key) {
if ($key === 'add_more') {
$add_more_button =& $widget[$key];
}
else {
$items[] =& $widget[$key];
}
}
usort($items, '_field_sort_items_value_helper');
// Add the items as table rows.
foreach ($items as $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),
);
if ($settings['field']['cardinality'] !== '1') {
$cells[] = array(
'data' => $delta_element,
'class' => array(
'delta-order',
),
);
}
$rows[] = array(
'data' => $cells,
'class' => array(
'entityreference-view-widget-table-row',
'draggable',
),
);
}
$empty_message = t('No items have been added yet. Click "Add items" to launch the widget.');
drupal_add_js(array(
'entityreferenceViewWidgetEmptyMessage' => $empty_message,
), 'setting');
if (empty($rows)) {
$rows[][] = array(
'data' => $empty_message,
'colspan' => '3',
);
}
$output = '<div class="form-item">';
$form_errors = form_get_errors();
$classes = array(
'field-multiple-table',
);
// Add an error class to the table in case of error.
if (isset($form_errors[$settings['element']])) {
$classes[] = 'error';
}
$output .= theme('table', array(
'header' => $header,
'rows' => $rows,
'attributes' => array(
'id' => $settings['table_id'],
'class' => $classes,
),
));
$output .= $widget['#description'] ? '<div class="description">' . $widget['#description'] . '</div>' : '';
$output .= '<div class="clearfix">' . drupal_render($add_more_button) . '</div>';
$output .= '</div>';
if ($settings['field']['cardinality'] !== '1') {
drupal_add_tabledrag($settings['table_id'], 'order', 'sibling', $order_class);
}
return $output;
}