12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- namespace Drupal\Core\Menu\Plugin\Block;
- use Drupal\Core\Block\BlockBase;
- use Drupal\Core\Menu\LocalActionManagerInterface;
- use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
- use Symfony\Component\DependencyInjection\ContainerInterface;
- use Drupal\Core\Routing\RouteMatchInterface;
- /**
- * Provides a block to display the local actions.
- *
- * @Block(
- * id = "local_actions_block",
- * admin_label = @Translation("Primary admin actions")
- * )
- */
- class LocalActionsBlock extends BlockBase implements ContainerFactoryPluginInterface {
- /**
- * The local action manager.
- *
- * @var \Drupal\Core\Menu\LocalActionManagerInterface
- */
- protected $localActionManager;
- /**
- * The route match.
- *
- * @var \Drupal\Core\Routing\RouteMatchInterface
- */
- protected $routeMatch;
- /**
- * Creates a LocalActionsBlock instance.
- *
- * @param array $configuration
- * A configuration array containing information about the plugin instance.
- * @param string $plugin_id
- * The plugin_id for the plugin instance.
- * @param mixed $plugin_definition
- * The plugin implementation definition.
- * @param \Drupal\Core\Menu\LocalActionManagerInterface $local_action_manager
- * A local action manager.
- * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
- * The route match.
- */
- public function __construct(array $configuration, $plugin_id, $plugin_definition, LocalActionManagerInterface $local_action_manager, RouteMatchInterface $route_match) {
- parent::__construct($configuration, $plugin_id, $plugin_definition);
- $this->localActionManager = $local_action_manager;
- $this->routeMatch = $route_match;
- }
- /**
- * {@inheritdoc}
- */
- public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
- return new static(
- $configuration,
- $plugin_id,
- $plugin_definition,
- $container->get('plugin.manager.menu.local_action'),
- $container->get('current_route_match')
- );
- }
- /**
- * {@inheritdoc}
- */
- public function defaultConfiguration() {
- return ['label_display' => FALSE];
- }
- /**
- * {@inheritdoc}
- */
- public function build() {
- $route_name = $this->routeMatch->getRouteName();
- $local_actions = $this->localActionManager->getActionsForRoute($route_name);
- return $local_actions;
- }
- }
|