utils = $utils; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['label'], $configuration['view_mode'], $configuration['third_party_settings'], $container->get('current_user'), $container->get('entity_type.manager')->getStorage('image_style'), $container->get('islandora.utils') ); } /** * {@inheritdoc} */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = parent::viewElements($items, $langcode); $image_link_setting = $this->getSetting('image_link'); // Check if the formatter involves a link. if ($image_link_setting != 'content') { return $elements; } $entity = $items->getEntity(); if ($entity->isNew() || $entity->getEntityTypeId() != 'media') { return $elements; } $node = $this->utils->getParentNode($entity); if ($node === NULL) { return $elements; } $url = $node->toUrl(); foreach ($elements as &$element) { $element['#url'] = $url; } return $elements; } }