/**
  * {@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())));
             }
         }
     }
 }
Beispiel #2
0
 /**
  * {@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);
 }