Mercurial > hg > isophonics-drupal-site
view core/modules/system/src/Plugin/Derivative/SystemMenuBlock.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\system\Plugin\Derivative; use Drupal\Component\Plugin\Derivative\DeriverBase; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides block plugin definitions for custom menus. * * @see \Drupal\system\Plugin\Block\SystemMenuBlock */ class SystemMenuBlock extends DeriverBase implements ContainerDeriverInterface { /** * The menu storage. * * @var \Drupal\Core\Entity\EntityStorageInterface */ protected $menuStorage; /** * Constructs new SystemMenuBlock. * * @param \Drupal\Core\Entity\EntityStorageInterface $menu_storage * The menu storage. */ public function __construct(EntityStorageInterface $menu_storage) { $this->menuStorage = $menu_storage; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, $base_plugin_id) { return new static( $container->get('entity.manager')->getStorage('menu') ); } /** * {@inheritdoc} */ public function getDerivativeDefinitions($base_plugin_definition) { foreach ($this->menuStorage->loadMultiple() as $menu => $entity) { $this->derivatives[$menu] = $base_plugin_definition; $this->derivatives[$menu]['admin_label'] = $entity->label(); $this->derivatives[$menu]['config_dependencies']['config'] = [$entity->getConfigDependencyName()]; } return $this->derivatives; } }