function SystemMenuBlock::getCacheContexts
Same name and namespace in other branches
- 11.x core/modules/system/src/Plugin/Block/SystemMenuBlock.php \Drupal\system\Plugin\Block\SystemMenuBlock::getCacheContexts()
- 10 core/modules/system/src/Plugin/Block/SystemMenuBlock.php \Drupal\system\Plugin\Block\SystemMenuBlock::getCacheContexts()
- 9 core/modules/system/src/Plugin/Block/SystemMenuBlock.php \Drupal\system\Plugin\Block\SystemMenuBlock::getCacheContexts()
- 8.9.x core/modules/system/src/Plugin/Block/SystemMenuBlock.php \Drupal\system\Plugin\Block\SystemMenuBlock::getCacheContexts()
Overrides ContextAwarePluginTrait::getCacheContexts
1 call to SystemMenuBlock::getCacheContexts()
- NavigationMenuBlock::getCacheContexts in core/
modules/ navigation/ src/ Plugin/ Block/ NavigationMenuBlock.php
1 method overrides SystemMenuBlock::getCacheContexts()
- NavigationMenuBlock::getCacheContexts in core/
modules/ navigation/ src/ Plugin/ Block/ NavigationMenuBlock.php
File
-
core/
modules/ system/ src/ Plugin/ Block/ SystemMenuBlock.php, line 271
Class
- SystemMenuBlock
- Provides a generic Menu block.
Namespace
Drupal\system\Plugin\BlockCode
public function getCacheContexts() {
// ::build() uses MenuLinkTreeInterface::getCurrentRouteMenuTreeParameters()
// to generate menu tree parameters, and those take the active menu trail
// into account. Therefore, we must vary the rendered menu by the active
// trail of the rendered menu.
// Additional cache contexts, e.g. those that determine link text or
// accessibility of a menu, will be bubbled automatically.
$menu_name = $this->getDerivativeId();
$contexts = parent::getCacheContexts();
// The active trail context is added when the menu block is not configured
// to ignore the active trail. Ignoring the active trail only applies when
// the menu is also configured with all items expanded and start level 1, so
// if any of those conditions are not true, the active trail context is
// added.
if ($this->shouldSetActiveTrail()) {
$contexts = Cache::mergeContexts($contexts, [
'route.menu_active_trails:' . $menu_name,
]);
}
return $contexts;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.