function hook_block_build_alter
Same name in other branches
- 9 core/modules/block/block.api.php \hook_block_build_alter()
- 8.9.x core/modules/block/block.api.php \hook_block_build_alter()
- 11.x core/modules/block/block.api.php \hook_block_build_alter()
Alter the result of \Drupal\Core\Block\BlockBase::build().
Unlike hook_block_view_alter(), this hook is called very early, before the block is being assembled. Therefore, it is early enough to alter the cacheability metadata (change #cache), or to explicitly placeholder the block (set #create_placeholder).
In addition to hook_block_build_alter(), which is called for all blocks, there is hook_block_build_BASE_BLOCK_ID_alter(), which can be used to target a specific block or set of similar blocks.
Parameters
array &$build: A renderable array of data, only containing #cache.
\Drupal\Core\Block\BlockPluginInterface $block: The block plugin instance.
See also
hook_block_build_BASE_BLOCK_ID_alter()
Entity CRUD, editing, and view hooks
Related topics
1 invocation of hook_block_build_alter()
- BlockViewBuilder::viewMultiple in core/
modules/ block/ src/ BlockViewBuilder.php - Builds the render array for the provided entities.
File
-
core/
modules/ block/ block.api.php, line 152
Code
function hook_block_build_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
// Add the 'user' cache context to some blocks.
if ($block->label() === 'some condition') {
$build['#cache']['contexts'][] = 'user';
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.