Submitted by LesEntreprenautes on
Bonjour,
J'essaie en vain de formater une page de visualition pour un node en l'occurrence ici un type de contenu blog. J'applique un "page-blog.tpl.php" qui fonctionne bien en listing mais dès que je clique pour visualiser l'article, je rebascule sur le tpl par defaut*.
J'observe que le module thermer info ne me propose pas ce format mais uniquement comme candidat : page-node-12.tpl.php < page-node.tpl.php < page.tpl.php
Je ne vois pas l'interet de faire un tpl pour un node 12 et puis j'aurai plusieurs format "page-node.tpl.php" donc il faut que je varie.
question bonus, peux t'on mettre les fichiers tpl dans des dossiers pour que ce soit mieux rangé?
Ou est la subtilité?
Florent
ps: *je ne cherche pas a formater un node.tpl en listing mais une page.
Page qui n'aura plus le
Permalien Soumis par davidR le 28 Mai, 2009 - 10:52
Page qui n'aura plus le comportement standard d'un content type page donc...
Soit tu templates en testant sur un type ou alors tu test sur une taxonomie et fait appel à un template dédié à ce type d'affichage. Ya pas mal de solutions en fait... Dépend de tes goûts.
Sinon oui tu peux ranger dans des sous-dossiers, suffira d'écrire l'include en conséquence dans le page.tpl.php
Enfin la doc est ici au cas où
Merci David, J'ai utilisé
Permalien Soumis par LesEntreprenautes le 4 Juin, 2009 - 17:24
Merci David,
J'ai utilisé la méthode dans page.tpl.php pour afficher une page détaillée(qui semble un hack pour Drupal 4 & 5 qui je suppose n'avaient pas de detection automatique) mais bon cela fonctionne bien aussi pour Drupal 6 afin de ne pas switcher de modele lorsque qu'on consulte une page "détail ou Content".
J'ai donc rangé le fichier dans un dossier TPL mais c'est "node-blog.tpl" qui ne suit pas. Je me retrouve avec celui par défaut du systeme.
Je pourrai probablement faire pareil dans le node.tpl par defaut pour faire suivre mais l'idée de faire cela sur tous les fichiers TPL ne me parait pas tres fin. Y a t'il un autre moyen de definir le dossier ou se trouve les tpl.
if ($node->type == 'blog') {
include 'TPL/page-blog.tpl.php';
return; }
Florent
J'ai résolu le pb des
Permalien Soumis par LesEntreprenautes le 5 Juin, 2009 - 12:01
J'ai résolu le pb des dossiers a priori il faut que tous les tpl soient dans le meme dossier. Sinon cette fonction a coller dans template est interessante pour appeler page-node-blog.tpl.php mais invalide pour drupal 6, j'ai essayé en vain de renomner avec preprocess.
function _phptemplate_variables($hook, $vars) {
if ($hook == 'page' && !empty($vars['node']->type)) {
$vars['template_files'][] = 'page-node-'. $vars['node']->type;
}
return $vars;
}
Florent
<?phpfunction
Permalien Soumis par Damien Tournoud le 5 Juin, 2009 - 12:45
Merci Damien, Il y a un
Permalien Soumis par LesEntreprenautes le 5 Juin, 2009 - 13:41
Merci Damien,
Il y a un oubli de fermeture dans le code ci-dessus.
if (isset($variables['node']))
Florent
Exact, corrigé.
Permalien Soumis par Damien Tournoud le 5 Juin, 2009 - 13:57
Exact, corrigé.