diff --git a/core/modules/image/lib/Drupal/image/Plugin/field/formatter/ImageFormatterBase.php b/core/modules/image/lib/Drupal/image/Plugin/field/formatter/ImageFormatterBase.php index 5251503..03d2727 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/field/formatter/ImageFormatterBase.php +++ b/core/modules/image/lib/Drupal/image/Plugin/field/formatter/ImageFormatterBase.php @@ -7,6 +7,7 @@ namespace Drupal\image\Plugin\field\formatter; +use Drupal\field\FieldInstanceInterface; use Drupal\file\Plugin\field\formatter\FileFormatterBase; /** @@ -24,8 +25,13 @@ public function prepareView(array $entities_items) { foreach ($entities_items as $items) { if ($items->isEmpty()) { // Add the default image if one is found. - // @todo Cannot work, instance covers field... $fid = $this->getFieldSetting('default_image'); + // If we are dealing with a configurable field, look in both + // instance-level and field-level settings. + if (empty($fid) && $this->fieldDefinition instanceof FieldInstanceInterface) { + $fid = $this->fieldDefinition->getField()->getFieldSetting('default_image'); + } + if ($fid && ($file = file_load($fid))) { $items->setValue(array(array( 'is_default' => TRUE,