/** * {@inheritdoc} */ public function prepareView(array $entities_items) { parent::prepareView($entities_items); // If there are no files specified at all, use the default. foreach ($entities_items as $items) { if ($items->isEmpty()) { // Add the default image if one is found. $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['fid']) && $this->fieldDefinition instanceof FieldInstanceConfigInterface) { $default_image = $this->fieldDefinition->getFieldStorageDefinition()->getSetting('default_image'); } if (!empty($default_image['fid']) && ($file = file_load($default_image['fid']))) { $items->setValue(array(array('is_default' => TRUE, 'alt' => $default_image['alt'], 'title' => $default_image['title'], 'width' => $default_image['width'], 'height' => $default_image['height'], 'entity' => $file, 'target_id' => $file->id()))); } } } }
/** * {@inheritdoc} */ 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::entityManager()->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(array('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); }
/** * {@inheritdoc} */ protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items) { return parent::getEntitiesToView($items); }