public FormatterBase::view(FieldItemListInterface $items, $langcode = NULL)
Builds a renderable array for a fully themed field.
Parameters
\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.
string $langcode: (optional) The language that should be used to render the field. Defaults to the current content language.
Return value
array A renderable array for a themed field with its label and all its values.
Overrides FormatterInterface::view
File
- core/lib/Drupal/Core/Field/FormatterBase.php, line 75
Class
- FormatterBase
- Base class for 'Field formatter' plugin implementations.
Namespace
Drupal\Core\Field
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public function view(FieldItemListInterface $items , $langcode = NULL) { // Default the language to the current content language. if ( empty ( $langcode )) { $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); } $elements = $this ->viewElements( $items , $langcode ); // If there are actual renderable children, use #theme => field, otherwise, // let access cacheability metadata pass through for correct bubbling. if (Element::children( $elements )) { $entity = $items ->getEntity(); $entity_type = $entity ->getEntityTypeId(); $field_name = $this ->fieldDefinition->getName(); $info = array ( '#theme' => 'field' , '#title' => $this ->fieldDefinition->getLabel(), '#label_display' => $this ->label, '#view_mode' => $this ->viewMode, '#language' => $items ->getLangcode(), '#field_name' => $field_name , '#field_type' => $this ->fieldDefinition-> getType (), '#field_translatable' => $this ->fieldDefinition->isTranslatable(), '#entity_type' => $entity_type , '#bundle' => $entity ->bundle(), '#object' => $entity , '#items' => $items , '#formatter' => $this ->getPluginId(), '#is_multiple' => $this ->fieldDefinition->getFieldStorageDefinition()->isMultiple(), ); $elements = array_merge ( $info , $elements ); } return $elements ; } |
Please login to continue.