function ImageFormatterBase::getEntitiesToView

Same name and namespace in other branches
  1. 11.x core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()
2 calls to ImageFormatterBase::getEntitiesToView()
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\FieldFormatter

Code

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.