template suggestions for container templates in Drupal 8
The below, and possibly improved, is incorporated into the Template Suggest module now includes container template suggestions. An example of what it will provide for a view:
FILE NAME SUGGESTIONS:
* container--view--case-study--page-listing.html.twig
* container--view--case-study.html.twig
x container--view.html.twig
* container--no-parent.html.twig
* container.html.twig
/**
* Implements hook_theme_suggestions_HOOK_alter() for container templates.
*
* Add suggestions, as by default none are provided.
*/
function twigsuggest_theme_suggestions_container_alter(array &$suggestions, array $variables)
{
if ($variables['has_parent']) {
$suggestions[] = 'container__has_parent';
}
else {
$suggestions[] = 'container__no_parent';
}
$element = $variables['element'];
if (isset($element['#type']) && $element['#type'] != 'container') {
$suggestions[] = 'container__' . $element['#type'];
}
if (isset($element['#type']) && $element['#type'] == 'container' && isset($element['children
']['#type'])) {
$suggestions[] = 'container__' . $element['children']['#type'];
}
if (isset($element['#type']) && $element['#type'] == 'view') {
$suggestions[] = 'container__view__' . $element['#name'];
$suggestions[] = 'container__view__' . $element['#name'] . '__' . $element['#display_id'];
}
return $suggestions;
}