- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
Twig et drupal 8
Twig, intégré au core de drupal 8 remplace PHPtemplate (qui donne trop de "pouvoir" PHP au thémeur).
PHP 5.2.4 min est requis pour Twig. Il existe plusieurs facon de l'installer, la meilleure est via Composer.
Voir aussi mes notes sur le drupalcamp de Floride 2017, et tout ce qui est tagué twig.
Principe de séparation: Les templates twig constuisent les balises, font quelques modifs basiques mais le gros des modifs (qui peuvent etre sales voire dangereuses) seront faites ailleurs.
On pourra toujours utiliser (pour des modifs lourdes ou dangereuses) theme_preprocess_foo()
et theme_preprocess_bar()
Un exemple simple pour comprendre
Prenons par ex un template de menu de navigation:
<nav>
<h1>Main navigation</h1>
<ul>
{% for item in menu %}
<li><a href="{{ item.href }}">{{ item.name }}</a></li>
{% endfor %}
</ul>
</nav>
{% foo %}
est pour les expressions (for...), et {{ bar }}
affiche la valeur de la variable "bar" dans le template.
Modifier des variables
Twig propose quelques filtres pour modifier les variables, qui sont ajoutés après la var séparé par un pipe. On peux les chainer et ils peuvent prendre des arguments. Ex:
-
{{ label|upper }}
le filtre "majuscule" est appliqué à la variable "label". -
{{ dump() }}
imprime toutes les variables disponibles (twig).
Arbo et fichiers
Seul montheme.info.yml est obligatoire (meta data, libraries, et régions des blocs).
Ranger les themes (ex zen) dans contrib et mettre les siens dans un dossier nommé custom - les thèmes du core sont dans core/themes.
Sur le web
En anglais:
- Source de cet article: http://anthonyringoet.be/post/introduction-to-twig/
-
#drupal-twig
cannal IRC - site officiel http://twig.sensiolabs.org/ et surtout http://twig.sensiolabs.org/doc/templates.html
- conversion de tpl.php vers html.twig https://www.drupal.org/node/2025313
- https://www.drupal.org/theme-guide/8
- https://www.drupal.org/docs/8/theming-drupal-8/theming-differences-betwe...
- débuguer twig : https://www.drupal.org/node/2358785 et https://www.drupal.org/node/1903374