X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fentity%2Fsrc%2FPlugin%2FDerivative%2FRevisionsOverviewDeriver.php;fp=web%2Fmodules%2Fcontrib%2Fentity%2Fsrc%2FPlugin%2FDerivative%2FRevisionsOverviewDeriver.php;h=b00b8ceb4ef51ff3d1b40498116142327030e08a;hp=0000000000000000000000000000000000000000;hb=f3baf763d342a5f82576890e2a8111a5aaf139dc;hpb=059867c3f96750652c80f39e44c442a58c2549ee diff --git a/web/modules/contrib/entity/src/Plugin/Derivative/RevisionsOverviewDeriver.php b/web/modules/contrib/entity/src/Plugin/Derivative/RevisionsOverviewDeriver.php new file mode 100644 index 000000000..b00b8ceb4 --- /dev/null +++ b/web/modules/contrib/entity/src/Plugin/Derivative/RevisionsOverviewDeriver.php @@ -0,0 +1,68 @@ +entityTypeManager = $entityTypeManager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, $base_plugin_id) { + return new static( + $container->get('entity_type.manager') + ); + } + + /** + * {@inheritdoc} + */ + public function getDerivativeDefinitions($base_plugin_definition) { + $exclude = ['node']; + + $this->derivatives = []; + foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) { + if (in_array($entity_type_id, $exclude)) { + continue; + } + + if (!$entity_type->hasLinkTemplate('version-history')) { + continue; + } + + $this->derivatives[$entity_type_id] = [ + 'route_name' => "entity.$entity_type_id.version_history", + 'title' => t('Revisions'), + 'base_route' => "entity.$entity_type_id.canonical", + 'weight' => 20, + ] + $base_plugin_definition; + } + + return parent::getDerivativeDefinitions($base_plugin_definition); + } + +}