template_preprocess_field

  1. drupal
    1. drupal7
Versionen
drupal7 template_preprocess_field(&$variables)

Theme preprocess function for field.tpl.php.

The $variables array contains the following arguments:

  • $object
  • $field
  • $items
  • $teaser
  • $page

See also

field.tpl.php

Verwandte Themen

Code

modules/field/field.module, line 546

<?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

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen