X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fentityqueue%2Fsrc%2FPlugin%2FDerivative%2FEntityqueueLocalTask.php;fp=web%2Fmodules%2Fcontrib%2Fentityqueue%2Fsrc%2FPlugin%2FDerivative%2FEntityqueueLocalTask.php;h=49bb23c537d40ef2d650ab4838d30ec6ff517300;hp=0000000000000000000000000000000000000000;hb=059867c3f96750652c80f39e44c442a58c2549ee;hpb=f8fc16ae6b862bef59baaad5d051dd37b7ff11b2 diff --git a/web/modules/contrib/entityqueue/src/Plugin/Derivative/EntityqueueLocalTask.php b/web/modules/contrib/entityqueue/src/Plugin/Derivative/EntityqueueLocalTask.php new file mode 100644 index 000000000..49bb23c53 --- /dev/null +++ b/web/modules/contrib/entityqueue/src/Plugin/Derivative/EntityqueueLocalTask.php @@ -0,0 +1,72 @@ +entityTypeManager = $entity_type_manager; + $this->stringTranslation = $string_translation; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, $base_plugin_id) { + return new static( + $container->get('entity_type.manager'), + $container->get('string_translation') + ); + } + + /** + * {@inheritdoc} + */ + public function getDerivativeDefinitions($base_plugin_definition) { + $this->derivatives = []; + + foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) { + if ($entity_type->hasViewBuilderClass() && $entity_type->hasLinkTemplate('canonical')) { + $entityqueue_route_name = "entity.$entity_type_id.entityqueue"; + $this->derivatives[$entityqueue_route_name] = [ + 'entity_type' => $entity_type_id, + 'title' => $this->t('Entityqueue'), + 'route_name' => $entityqueue_route_name, + 'base_route' => "entity.$entity_type_id.canonical", + // Ensure that the entityqueue tab is at the end of the list. + 'weight' => 21, + ] + $base_plugin_definition; + } + } + + return parent::getDerivativeDefinitions($base_plugin_definition); + } + +}