annotate core/modules/media/src/Plugin/Derivative/DynamicLocalTasks.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@18 1 <?php
Chris@18 2
Chris@18 3 namespace Drupal\media\Plugin\Derivative;
Chris@18 4
Chris@18 5 use Drupal\Component\Plugin\Derivative\DeriverBase;
Chris@18 6 use Drupal\Core\Config\ConfigFactoryInterface;
Chris@18 7 use Drupal\Core\Entity\EntityTypeManagerInterface;
Chris@18 8 use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
Chris@18 9 use Drupal\Core\StringTranslation\StringTranslationTrait;
Chris@18 10 use Drupal\Core\StringTranslation\TranslationInterface;
Chris@18 11 use Symfony\Component\DependencyInjection\ContainerInterface;
Chris@18 12
Chris@18 13 /**
Chris@18 14 * Generates media-related local tasks.
Chris@18 15 */
Chris@18 16 class DynamicLocalTasks extends DeriverBase implements ContainerDeriverInterface {
Chris@18 17
Chris@18 18 use StringTranslationTrait;
Chris@18 19
Chris@18 20 /**
Chris@18 21 * The entity type manager.
Chris@18 22 *
Chris@18 23 * @var \Drupal\Core\Entity\EntityTypeManagerInterface
Chris@18 24 */
Chris@18 25 protected $entityTypeManager;
Chris@18 26
Chris@18 27 /**
Chris@18 28 * The media settings config.
Chris@18 29 *
Chris@18 30 * @var \Drupal\Core\Config\ImmutableConfig
Chris@18 31 */
Chris@18 32 protected $config;
Chris@18 33
Chris@18 34 /**
Chris@18 35 * Creates a DynamicLocalTasks object.
Chris@18 36 *
Chris@18 37 * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
Chris@18 38 * The translation manager.
Chris@18 39 * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
Chris@18 40 * The entity type manager.
Chris@18 41 * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
Chris@18 42 * The config factory.
Chris@18 43 */
Chris@18 44 public function __construct(TranslationInterface $string_translation, EntityTypeManagerInterface $entity_type_manager, ConfigFactoryInterface $config_factory) {
Chris@18 45 $this->stringTranslation = $string_translation;
Chris@18 46 $this->entityTypeManager = $entity_type_manager;
Chris@18 47 $this->config = $config_factory->get('media.settings');
Chris@18 48 }
Chris@18 49
Chris@18 50 /**
Chris@18 51 * {@inheritdoc}
Chris@18 52 */
Chris@18 53 public static function create(ContainerInterface $container, $base_plugin_id) {
Chris@18 54 return new static(
Chris@18 55 $container->get('string_translation'),
Chris@18 56 $container->get('entity_type.manager'),
Chris@18 57 $container->get('config.factory')
Chris@18 58 );
Chris@18 59 }
Chris@18 60
Chris@18 61 /**
Chris@18 62 * {@inheritdoc}
Chris@18 63 */
Chris@18 64 public function getDerivativeDefinitions($base_plugin_definition) {
Chris@18 65 // Provide an edit_form task if standalone media URLs are enabled.
Chris@18 66 $this->derivatives["entity.media.canonical"] = [
Chris@18 67 'route_name' => "entity.media.canonical",
Chris@18 68 'title' => $this->t('Edit'),
Chris@18 69 'base_route' => "entity.media.canonical",
Chris@18 70 'weight' => 1,
Chris@18 71 ] + $base_plugin_definition;
Chris@18 72
Chris@18 73 if ($this->config->get('standalone_url')) {
Chris@18 74 $this->derivatives["entity.media.canonical"]['title'] = $this->t('View');
Chris@18 75
Chris@18 76 $this->derivatives["entity.media.edit_form"] = [
Chris@18 77 'route_name' => "entity.media.edit_form",
Chris@18 78 'title' => $this->t('Edit'),
Chris@18 79 'base_route' => 'entity.media.canonical',
Chris@18 80 'weight' => 2,
Chris@18 81 ] + $base_plugin_definition;
Chris@18 82 }
Chris@18 83
Chris@18 84 $this->derivatives["entity.media.delete_form"] = [
Chris@18 85 'route_name' => "entity.media.delete_form",
Chris@18 86 'title' => $this->t('Delete'),
Chris@18 87 'base_route' => "entity.media.canonical",
Chris@18 88 'weight' => 10,
Chris@18 89 ] + $base_plugin_definition;
Chris@18 90
Chris@18 91 return $this->derivatives;
Chris@18 92 }
Chris@18 93
Chris@18 94 }