function BlockContentHooks::themeSuggestionsBlockAlter
Implements hook_theme_suggestions_HOOK_alter() for block templates.
File
-
core/
modules/ block_content/ src/ Hook/ BlockContentHooks.php, line 115
Class
- BlockContentHooks
- Hook implementations for block_content.
Namespace
Drupal\block_content\HookCode
public function themeSuggestionsBlockAlter(array &$suggestions, array $variables) {
$suggestions_new = [];
$content = $variables['elements']['content'];
$block_content = $variables['elements']['content']['#block_content'] ?? NULL;
if ($block_content instanceof BlockContentInterface) {
$bundle = $content['#block_content']->bundle();
$view_mode = strtr($variables['elements']['#configuration']['view_mode'], '.', '_');
$suggestions_new[] = 'block__block_content__view__' . $view_mode;
$suggestions_new[] = 'block__block_content__type__' . $bundle;
$suggestions_new[] = 'block__block_content__view_type__' . $bundle . '__' . $view_mode;
if (!empty($variables['elements']['#id'])) {
$suggestions_new[] = 'block__block_content__id__' . $variables['elements']['#id'];
$suggestions_new[] = 'block__block_content__id_view__' . $variables['elements']['#id'] . '__' . $view_mode;
}
// Remove duplicate block__block_content.
$suggestions = array_unique($suggestions);
array_splice($suggestions, 1, 0, $suggestions_new);
}
return $suggestions;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.