X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FField%2FPlugin%2FField%2FFieldFormatter%2FStringFormatter.php;h=ef2f43c283e9edf302c369e5e41e70c98ff5c2ef;hb=refs%2Fheads%2Fd864;hp=08642a06b90a2f216f8403818fecf43402b1aad2;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php b/web/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php index 08642a06b..ef2f43c28 100644 --- a/web/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php +++ b/web/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php @@ -3,7 +3,7 @@ namespace Drupal\Core\Field\Plugin\Field\FieldFormatter; use Drupal\Core\Entity\EntityInterface; -use Drupal\Core\Entity\EntityManagerInterface; +use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldItemInterface; use Drupal\Core\Field\FormatterBase; @@ -29,6 +29,13 @@ use Symfony\Component\DependencyInjection\ContainerInterface; */ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInterface { + /** + * The entity type manager. + * + * @var \Drupal\Core\Entity\EntityTypeManagerInterface + */ + protected $entityTypeManager; + /** * Constructs a StringFormatter instance. * @@ -46,13 +53,13 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt * The view mode. * @param array $third_party_settings * Any third party settings settings. - * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager - * The entity manager. + * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager + * The entity type manager. */ - public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings, EntityManagerInterface $entity_manager) { + public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings, EntityTypeManagerInterface $entity_type_manager) { parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings); - $this->entityManager = $entity_manager; + $this->entityTypeManager = $entity_type_manager; } /** @@ -67,7 +74,7 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt $configuration['label'], $configuration['view_mode'], $configuration['third_party_settings'], - $container->get('entity.manager') + $container->get('entity_type.manager') ); } @@ -87,7 +94,7 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt public function settingsForm(array $form, FormStateInterface $form_state) { $form = parent::settingsForm($form, $form_state); - $entity_type = $this->entityManager->getDefinition($this->fieldDefinition->getTargetEntityTypeId()); + $entity_type = $this->entityTypeManager->getDefinition($this->fieldDefinition->getTargetEntityTypeId()); $form['link_to_entity'] = [ '#type' => 'checkbox', @@ -104,7 +111,7 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt public function settingsSummary() { $summary = []; if ($this->getSetting('link_to_entity')) { - $entity_type = $this->entityManager->getDefinition($this->fieldDefinition->getTargetEntityTypeId()); + $entity_type = $this->entityTypeManager->getDefinition($this->fieldDefinition->getTargetEntityTypeId()); $summary[] = $this->t('Linked to the @entity_label', ['@entity_label' => $entity_type->getLabel()]); } return $summary; @@ -117,7 +124,6 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt $elements = []; $url = NULL; if ($this->getSetting('link_to_entity')) { - // For the default revision this falls back to 'canonical'. $url = $this->getEntityUrl($items->getEntity()); } @@ -166,8 +172,11 @@ class StringFormatter extends FormatterBase implements ContainerFactoryPluginInt * The URI elements of the entity. */ protected function getEntityUrl(EntityInterface $entity) { - // For the default revision this falls back to 'canonical'. - return $entity->toUrl('revision'); + // For the default revision, the 'revision' link template falls back to + // 'canonical'. + // @see \Drupal\Core\Entity\Entity::toUrl() + $rel = $entity->getEntityType()->hasLinkTemplate('revision') ? 'revision' : 'canonical'; + return $entity->toUrl($rel); } }