Obtenir le nom du site dans un modèle personnalisé

7

Je souhaite imprimer le nom du site dans un modèle personnalisé ( page--front.html.twig)

{{ site_name }} ne marche pas.

Si j'utilise, {{ page['#title'] }}j'obtiens uniquement "Bienvenue sur [nom_site]".

Je cherche un moyen d'imprimer uniquement le site_name. Quelqu'un sait-il comment y parvenir?

Merci!

Stefan
la source

Réponses:

11

Ajoutez ceci au YOUR_THEME.themefichier:

function YOUR_THEME_preprocess_page(&$variables) {
  $variables['site_name'] = \Drupal::config('system.site')->get('name');
}

Et puis ceci dans votre page--front.html.twigmodèle:

{{ site_name }}
Aram Boyajyan
la source
6

Certaines choses ont changé de Drupal 7 à Drupal 8. L'une des choses qui ont changé, c'est que c'est une très bonne idée d'utiliser des blocs au lieu de récupérer et de rendre ce truc vous-même. La raison principale est la mise en cache.

Ce que vous voulez probablement faire, c'est placer le bloc d'image de marque du site quelque part sur la page (peut afficher le nom du site, le logo et / ou le slogan). De nombreux éléments codés en dur dans les thèmes sont désormais des blocs.

Cela a été un gros effort, car cela rend possible la mise en cache et d'énormes gains de performances, ce qui a été réalisé dans Drupal 8.

Si vous voulez vraiment le faire à la manière de Drupal 7, la réponse de @ Aram vous montre comment le faire avec un hook de prétraitement.

googletorp
la source
Très intéressant. Merci! J'ai trouvé un moyen d'implémenter le bloc dans un modèle * .twig en utilisant l'extrait de code suivant: {% include 'themes / bootstrap / templates / block - system-branding-block.html.twig'%}. Est-ce correct ou recommanderiez-vous une autre approche?
Stefan
@Phil, je vous recommande de créer une région dans votre thème, de configurer et de placer le bloc. Si nécessaire, vous pouvez créer un modèle personnalisé pour modifier le balisage généré, la plupart du temps cela ne sera pas nécessaire.
googletorp
1

Oui, dans les D8 twig templatefichiers, vous ne pouvez pas écrire de code pour récupérer des données.

Si vous avez besoin de données, vous devez définir les variables en preprocessfonction et les utiliser.

DRUPWAY
la source