function hook_field_formatter_view
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
7 functions implement hook_field_formatter_view()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- field_test_field_formatter_view in modules/
field/ tests/ field_test.field.inc - Implements hook_field_formatter_view().
- file_field_formatter_view in modules/
file/ file.field.inc - Implements hook_field_formatter_view().
- image_field_formatter_view in modules/
image/ image.field.inc - Implements hook_field_formatter_view().
- list_field_formatter_view in modules/
field/ modules/ list/ list.module - Implements hook_field_formatter_view().
- number_field_formatter_view in modules/
field/ modules/ number/ number.module - Implements hook_field_formatter_view().
File
-
modules/
field/ field.api.php, line 1214
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;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.