| Versionen | |
|---|---|
| drupal7 | template_preprocess_field(&$variables) |
Theme preprocess function for field.tpl.php.
The $variables array contains the following arguments:
modules/
<?php
function template_preprocess_field(&$variables) {
$element = $variables['element'];
list(, , $bundle) = field_attach_extract_ids($element['#object_type'], $element['#object']);
$instance = field_info_instance($element['#field_name'], $bundle);
$field = field_info_field($element['#field_name']);
$variables['object'] = $element['#object'];
$variables['field'] = $field;
$variables['instance'] = $instance;
$variables['items'] = array();
if ($element['#single']) {
// Single value formatter.
foreach (element_children($element['items']) as $delta) {
$variables['items'][$delta] = $element['items'][$delta]['#item'];
$variables['items'][$delta]['view'] = drupal_render_children($element['items'], array($delta));
}
}
else {
// Multiple values formatter.
// We display the 'all items' output as $items[0], as if it was the
// output of a single valued field.
// Raw values are still exposed for all items.
foreach (element_children($element['items']) as $delta) {
$variables['items'][$delta] = $element['items'][$delta]['#item'];
}
$variables['items'][0]['view'] = drupal_render_children($element, array('items'));
}
$variables['teaser'] = $element['#teaser'];
$variables['page'] = (bool) menu_get_object();
$field_empty = TRUE;
foreach ($variables['items'] as $delta => $item) {
if (!isset($item['view']) || (empty($item['view']) && (string) $item['view'] !== '0')) {
$variables['items'][$delta]['empty'] = TRUE;
}
else {
$field_empty = FALSE;
$variables['items'][$delta]['empty'] = FALSE;
}
}
$additions = array(
'field_type' => $field['type'],
'field_name' => $field['field_name'],
'field_type_css' => strtr($field['type'], '_', '-'),
'field_name_css' => strtr($field['field_name'], '_', '-'),
'label' => check_plain(t($instance['label'])),
'label_display' => $element['#label_display'],
'field_empty' => $field_empty,
'template_files' => array(
'field',
'field-' . $element['#field_name'],
'field-' . $bundle,
'field-' . $element['#field_name'] . '-' . $bundle,
),
);
$variables = array_merge($variables, $additions);
}
?>
Kommentare
Kommentar hinzufügen