function ImageFormatterBase::getEntitiesToView

Same name in other branches
  1. 9 core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()
  2. 10 core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()
  3. 11.x core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php \Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase::getEntitiesToView()

Overrides EntityReferenceFormatterBase::getEntitiesToView

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\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.