ImageFormatterBase.php in Drupal 10
File
core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php
View source
<?php
namespace Drupal\image\Plugin\Field\FieldFormatter;
use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
use Drupal\field\FieldConfigInterface;
use Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase;
abstract class ImageFormatterBase extends FileFormatterBase {
protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) {
if ($items
->isEmpty()) {
$default_image = $this
->getFieldSetting('default_image');
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']))) {
$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);
}
}