protected function ImageFormatterBase::getEntitiesToView in Drupal 10
Same name and namespace in other branches
- 8 core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()
- 9 core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()
Returns the referenced entities for display.
The method takes care of:
- checking entity access,
- placing the entities in the language expected for display.
It is thus strongly recommended that formatters use it in their implementation of viewElements($items) rather than dealing with $items directly.
For each entity, the EntityReferenceItem by which the entity is referenced is available in $entity->_referringItem. This is useful for field types that store additional values next to the reference itself.
Parameters
\Drupal\Core\Field\EntityReferenceFieldItemListInterface $items: The item list.
string $langcode: The language code of the referenced entities to display.
Return value
\Drupal\Core\Entity\EntityInterface[] The array of referenced entities to display, keyed by delta.
Overrides EntityReferenceFormatterBase::getEntitiesToView
See also
::prepareView()
4 calls to ImageFormatterBase::getEntitiesToView()
- ImageFormatter::viewElements in core/modules/ image/ src/ Plugin/ Field/ FieldFormatter/ ImageFormatter.php 
- Builds a renderable array for a field value.
- ImageUrlFormatter::viewElements in core/modules/ image/ src/ Plugin/ Field/ FieldFormatter/ ImageUrlFormatter.php 
- Builds a renderable array for a field value.
- MediaThumbnailFormatter::viewElements in core/modules/ media/ src/ Plugin/ Field/ FieldFormatter/ MediaThumbnailFormatter.php 
- Builds a renderable array for a field value.
- ResponsiveImageFormatter::viewElements in core/modules/ responsive_image/ src/ Plugin/ Field/ FieldFormatter/ ResponsiveImageFormatter.php 
- Builds a renderable array for a field value.
File
- core/modules/ image/ src/ Plugin/ Field/ FieldFormatter/ ImageFormatterBase.php, line 17 
Class
- ImageFormatterBase
- Base class for image file formatters.
Namespace
Drupal\image\Plugin\Field\FieldFormatterCode
protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) {
  // Add the default image if needed.
  if ($items
    ->isEmpty()) {
    $default_image = $this
      ->getFieldSetting('default_image');
    // If we are dealing with a configurable field, look in both
    // instance-level and field-level settings.
    if (empty($default_image['uuid']) && $this->fieldDefinition instanceof FieldConfigInterface) {
      $default_image = $this->fieldDefinition
        ->getFieldStorageDefinition()
        ->getSetting('default_image');
    }
    if (!empty($default_image['uuid']) && ($file = \Drupal::service('entity.repository')
      ->loadEntityByUuid('file', $default_image['uuid']))) {
      // Clone the FieldItemList into a runtime-only object for the formatter,
      // so that the fallback image can be rendered without affecting the
      // field values in the entity being rendered.
      $items = clone $items;
      $items
        ->setValue([
        'target_id' => $file
          ->id(),
        'alt' => $default_image['alt'],
        'title' => $default_image['title'],
        'width' => $default_image['width'],
        'height' => $default_image['height'],
        'entity' => $file,
        '_loaded' => TRUE,
        '_is_default' => TRUE,
      ]);
      $file->_referringItem = $items[0];
    }
  }
  return parent::getEntitiesToView($items, $langcode);
}