hook_field_formatter_view
function hook_field_formatter_view
hook_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display)
Build a renderable array for a field value.
Parameters
$entity_type: The type of $entity.
$entity: The entity being displayed.
$field: The field structure.
$instance: The field instance.
$langcode: The language associated with $items.
$items: Array of values for this field.
$display: The display settings to use, as found in the 'display' entry of instance definitions. The array notably contains the following keys and values;
- type: The name of the formatter to use.
- settings: The array of formatter settings.
Return value
A renderable array for the $items, as an array of child elements keyed by numeric indexes starting from 0.
Related topics
File
- modules/field/field.api.php, line 1214
- Hooks provided by the Field module.
Code
function hook_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { $element = array(); $settings = $display['settings']; switch ($display['type']) { case 'sample_field_formatter_simple': // Common case: each value is displayed individually in a sub-element // keyed by delta. The field.tpl.php template specifies the markup // wrapping each value. foreach ($items as $delta => $item) { $element[$delta] = array('#markup' => $settings['some_setting'] . $item['value']); } break; case 'sample_field_formatter_themeable': // More elaborate formatters can defer to a theme function for easier // customization. foreach ($items as $delta => $item) { $element[$delta] = array( '#theme' => 'mymodule_theme_sample_field_formatter_themeable', '#data' => $item['value'], '#some_setting' => $settings['some_setting'], ); } break; case 'sample_field_formatter_combined': // Some formatters might need to display all values within a single piece // of markup. $rows = array(); foreach ($items as $delta => $item) { $rows[] = array($delta, $item['value']); } $element[0] = array( '#theme' => 'table', '#header' => array(t('Delta'), t('Value')), '#rows' => $rows, ); break; } return $element; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field!field.api.php/function/hook_field_formatter_view/7.x