Devoir créer des templates différents pour chaque type de contenus d’un site web Drupal est une tâche relativement commune pour tout intégrateur web.
La méthode la plus répandue consiste à créer une page dénommée page—typedecontenu.tpl.php, pour chaque type de contenu à mettre en forme. Cette méthode présente un certain désavantage, dans le sens où le modèle précédemment crée ne s’applique pas aux nodes du type de contenu concerné. En d’autres termes, les pages crées avec cck, view ou display suite respecteront le modèle page—typedecontenu.tpl.php , mais les nodes respecteront les modèles page.tpl.php
Je me propose aujourd’hui de vous montrer comment corriger cela. Pour ce faire:
- Ouvrez le fichier template.php de votre template
- Saisissez la fonction suivant yourtheme_preprocess_page (où yourthemename désigne le nom de votre thème.
function yourthemename_preprocess_page(Dans l’éventualité où celle ci existerait déjà dans le fichier, ajouter
function yourthemename_preprocess_page(&$vars) {
if (isset($vars[‘node’]->type)) {
$vars[‘theme_hook_suggestions’][] = ‘page__’ . $vars[‘node’]->type;
}
}
Voila. Une votre fichier page—typedecontenu.tpl.php créé, il s’appliquera à l’ensemble de vos contenus