[RESOLU]Theming : .tpl et type de pages differents >> Template suggestions

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

je voudrais savoir comment faire pour avoir un type de page diffèrent selon le contenu,car j'ai reussi à faire un .tpl distinct pour la homepage ( page-front.tpl.php) mais ensuite j'ai deux mises en pages differents dans le sites selon le contenu...comment faire pour indiquer à drupal d'utiliser tel ou tel .tpl ?

merci

Version de Drupal : 

Si tu veux faire une mise en page spécifique pour un type de contenu spécifique :
node-content_type.tpl.php

Mais ça ne va changer "que" ce qu'il y a dans ton node, pas la totalité de la page.

Pour changer l'ensemble de la page (donc header et footer compris, entre autre), j'ai utilisé le module Pathauto pour avoir une URL unique par type de contenu.
Par exemple pour le type de contenu A : www.monsite.com/moncontenu/A/[title]
Pour le type de contenu B donc : www.monsite.com/une/autre/url/[titre]

Et ensuite je fais un fichier page-moncontenu-A.tpl.php
Et page-une-autre-url.tpl.php

Et ça marche :)

je pense que ta 1ere solution peut etre la bonne , creer un type de contenu et faire un tpl pour lui, mon header et footer sont identiques...
je vais faire des essais

le nom du fichier doit il etre le meme que le type de contenu créé ?

type de contenu : page test
fichier tpl : node-page-test.tpl.php

je viens de lire l'article sur le suggestions de template, et je pense que c'est la solution...par contre je ne connais pas assez php pour le faire tel qu'expliqué

http://www.kolossaldrupal.org/docs/travailler-avec-%C2%AB-templates-sugg...

par contre moi je peux créer un type de contenu et lui assigner un template comme dit précédemment, suis je alors obligé d'utiliser les suggestions ?

back in drupal
j'ai créé un type de contenu Page comme ceci :

adresse du TdC : content/node-type/page-lycee
nom : Page Lycée
type : page_lycee

et j'ai créé une page : page-lycee.tpl.php
mais je n'ai pas l'impression que ca marche...ai je bien construis les noms ?

j'ai renommer mon fichier en page-page-lycee.tpl.php mais ca ne fait pas d'effets..j'utilise pathauto mais ca devrait pas poser de probleme puisque ca marche pour ma homepage avec page-front.tpl...
pour le module je ne suis pas chaud car ca va encore alourdir le site...je pense aussi aux suggestions de template que je n'ai pas creusé mais qui se rapproche de la solution actuelle....

Enfaite je pense que c'est page-page_lycee.tpl.php vu que le type est "page_lycee" mais pour devel il n'est pas nécessaire de le garder sur le site une fois terminé, c'est juste pour le développement du site après tu désinstalle.

pourtant voila ce que dit devel en cliquant sous le header :

Template called:
    page.tpl.php
File used:
    sites/all/themes/Site_PF/page.tpl.php
Candidate template files:
    page-node-2.tpl.php < page-node.tpl.php < page.tpl.php

si je fais page-node-page_lycee.tpl.php ca ne marche pas ...
au début il me disais qu'il fallait mettre : node-page_lycee.tpl.php ; ca marche mais j'ai toujours ma structure de page 3 colonnes alors que je n'en veux que 2...

si je clique sur le content seul :

Parents: page.tpl.php

Template called:
    node.tpl.php
File used:
    sites/all/themes/Site_PF/node.tpl.php
Candidate template files:
    node-page_lycee.tpl.php < node.tpl.php

mon TdC est une page à la base...donc je ne comprends pas qu'il veuille un node.tpl et pas une page.tpl...du coté des suggestions il faut un fichier template.php mais je ne comprends pas trop le systeme...

EDIT: pour test,avec page-node-2.tpl.php ca marche mais c'est pas super logique...

Ah oui c'est vrai on travaille sur page.tpl.php qui n'as pas accès à node donc ne peut connaitre le type. J'ai complètement oublié il suffit de mettre cette snippet dans template.php :

<?php
function phptemplate_preprocess(&$vars, $hook)
{
  switch(
$hook)
  {
    case
'page' :
      if (
arg(0) == 'node')
    {
       
$vars['template_files'][]  = 'page-' . $vars['node']->type;
     }
      break;
  }
}
?>

Ce qui va vous donner page-page_lycee.tpl.php

parfait , ça à l'air de bien fonctionner...je peux faire d'autres tpl speciaux avec ce code ? en creant de nouveau TdC...
merci pour ton aide, la 1ere piste etait la meilleure : les template suggestions.

Avec ce code chaque node type peut avoir son tpl.php personnalisée, par exemple le node type page_college aura aussi page-page_college.tpl.php et si ce tpl.php n'existe pas il utilisera page.tpl.php