public BlockController::demo($theme)
Returns a block theme demo page.
Parameters
string $theme: The name of the theme.
Return value
array A #type 'page' render array containing the block region demo.
File
- core/modules/block/src/Controller/BlockController.php, line 51
Class
- BlockController
- Controller routines for admin block routes.
Namespace
Drupal\block\Controller
Code
public function demo($theme) { if (!$this->themeHandler->hasUi($theme)) { throw new NotFoundHttpException(); } $page = [ '#title' => Html::escape($this->themeHandler->getName($theme)), '#type' => 'page', '#attached' => array( 'drupalSettings' => [ // The block demonstration page is not marked as an administrative // page by \Drupal::service('router.admin_context')->isAdminRoute() // function in order to use the frontend theme. Since JavaScript // relies on a proper separation of admin pages, it needs to know this // is an actual administrative page. 'path' => ['currentPathIsAdmin' => TRUE], ], 'library' => array( 'block/drupal.block.admin', ), ), ]; // Show descriptions in each visible page region, nothing else. $visible_regions = $this->getVisibleRegionNames($theme); foreach (array_keys($visible_regions) as $region) { $page[$region]['block_description'] = array( '#type' => 'inline_template', '#template' => '<div class="block-region demo-block">{{ region_name }}</div>', '#context' => array('region_name' => $visible_regions[$region]), ); } return $page; }
Please login to continue.