diff --git a/core/modules/block/block.links.action.yml b/core/modules/block/block.links.action.yml index 8c3c871..9b2a61e 100644 --- a/core/modules/block/block.links.action.yml +++ b/core/modules/block/block.links.action.yml @@ -4,3 +4,4 @@ block_admin_placement_action: appears_on: - block.admin_display - block.admin_display_theme + class: \Drupal\block\Plugin\Menu\LocalAction\BlockAddLocalAction diff --git a/core/modules/block/src/Controller/BlockListController.php b/core/modules/block/src/Controller/BlockListController.php index ee505d9..376b960 100644 --- a/core/modules/block/src/Controller/BlockListController.php +++ b/core/modules/block/src/Controller/BlockListController.php @@ -35,6 +35,9 @@ public function listing($theme = NULL, Request $request = NULL) { } public function placement($theme = NULL, Request $request = NULL) { + if (empty($theme)) { + $theme = $request->query->get('theme'); + } $theme = $theme ?: $this->config('system.theme')->get('default'); $block_manager = \Drupal::service('plugin.manager.block'); diff --git a/core/modules/block/src/Plugin/Menu/LocalAction/BlockAddLocalAction.php b/core/modules/block/src/Plugin/Menu/LocalAction/BlockAddLocalAction.php new file mode 100644 index 0000000..93eaadd --- /dev/null +++ b/core/modules/block/src/Plugin/Menu/LocalAction/BlockAddLocalAction.php @@ -0,0 +1,32 @@ +getParameter('theme')) { + $options['query']['theme'] = $theme; + } + return $options; + } + +}