6.7. Travailler avec les régions et les blocs dans Drupal
Pour ajouter une nouvelle région permettant d’y afficher des blocs, vous devez :
- Ajouter les informations de la région dans le fichier
theme.info.yml
- Modifier le fichier
page.html.twig
en y ajoutant l’affichage de cette nouvelle région
Ajouter les données de la région dans drupalbook.info.yml
Toutes les régions sont regroupées sous la clé regions
:
# Regions
regions:
header: 'Header'
content: 'Content'
footer: 'Footer'
Le nom machine de la région doit être composé de lettres et chiffres, vous pouvez utiliser le underscore, comme pour les variables PHP. Le nom lisible peut être entre guillemets ou sans s’il n’y a pas d’espaces, mais il est préférable de toujours mettre des guillemets. Ce nom lisible est affiché dans l’administration, tandis que le nom machine est utilisé dans le template page.html.twig
.
Ajouter l’affichage de la région dans page.html.twig
Toutes les sorties de régions sont dans la variable page
. Pour afficher une région, vous devez afficher une partie de cette variable en utilisant le nom machine de la région. Par exemple, pour la région « header » :
header: 'Header'
On utilisera donc :
{{ page.header }}
Vous pouvez afficher n’importe quelle région définie dans votre theme.info.yml
où vous voulez dans le template page.html.twig
.
Régions standards de Drupal
Vous pouvez toujours consulter la documentation officielle : page.html.twig
page.header : pour afficher l’en-tête du site.
page.primary_menu : pour afficher le menu principal.
page.secondary_menu : pour afficher un menu secondaire.
page.highlighted : pour afficher des informations au-dessus du contenu.
page.help : pour afficher de l’aide.
page.content : région obligatoire pour le contenu du site.
page.sidebar_first : première barre latérale.
page.sidebar_second : deuxième barre latérale.
page.footer : pied de page.
page.breadcrumb : fil d’Ariane.
Vous pouvez utiliser les régions standards de Drupal ou en ajouter de nouvelles, l’essentiel est que le nom de la région corresponde à son emplacement dans page.html.twig
.