Drupal snippet 1 : avoir un même template pour tout une catégorie
Note publiée le .
En Drupal, le module de gestion des catégories s'appelle taxonomy et ça se gère à grands coups de vocabulaire et de termes. Je suis en train de faire un site où tous les articles (nodes) sont obligatoirement rangés dans des catégories. De plus chaque partie du site est censé avoir un thème personnalisé.
A partir de page.tpl.php
de votre thème actuel, créez-vous les fichiers pour les taxonomy qui vont bien, par exemple :
- page-taxonomy-term-1.tpl.php
- page-taxonomy-term-2.tpl.php
- page-taxonomy-term-3.tpl.php
Correspondants aux trois premières catégories. Chaque fichier a des spécifités : des choses qui apparaissent d'autres qui disparaissent et des fichiers css différents.
Dans le fichier template.php
du répertoire de votre thème (s'il n'existe pas, créez le), ajoutez ou adaptez ce bout de code :
function _phptemplate_variables($hook, $vars = array()) { switch ($hook) { case 'page': // Poour gerer dynamiquement le template par terme // merci : http://www.nicklewis.org/node/825 $node_taxonomy_object = $vars['node']->taxonomy; if ($node_taxonomy_object) { foreach($node_taxonomy_object as $term) { $suggestions = "page-taxonomy-term-".$term->tid; } $vars['template_files'] = $suggestions; } break; } return $vars; }
Et il viendra tout seul chercher les bons tempates.