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.