function collapsiblock_block_view_alter in Collapsiblock 4.x
Same name and namespace in other branches
- 8.2 collapsiblock.module \collapsiblock_block_view_alter()
- 3.x collapsiblock.module \collapsiblock_block_view_alter()
Implements hook_block_view_alter().
File
- ./
collapsiblock.module, line 78 - Make blocks collapsible.
Code
function collapsiblock_block_view_alter(array &$build, BlockPluginInterface $block) {
if (empty($build['#block']) || !$build['#block'] instanceof BlockInterface) {
return;
}
$block_entity = $build['#block'];
$action = $block_entity
->getThirdPartySetting('collapsiblock', 'collapse_action');
// If the block is set to global default, get that default and use it instead
// of 0.
if ($action == 0) {
$action = \Drupal::config('collapsiblock.settings')
->get('default_action');
}
// If the action is anything other than 'none', create our wrapper elements.
if ($action != 1) {
$id = 'collapsiblock-wrapper-' . $block_entity
->id();
$classes[] = 'collapsiblock';
$build['#collapsiblock']['prefix'] = [
'#markup' => '<div id="' . $id . '" class="' . implode(' ', $classes) . '" data-collapsiblock-action="' . $action . '">',
];
$build['#collapsiblock']['suffix'] = [
'collapsiblock' => [
'#markup' => '</div>',
],
];
}
}