Catégories:
Bonjour,
Je souhaiterais savoir quelle sont les bonnes pratiques pour identifier la page en cours ?
J’ai prévu d’utiliser le template page.tpl.php pour toutes les pages intérieures de mon site, et de façon conditionnel dans le template.php, définir quel contenu afficher pour quelle page…
Sur un autre projet, je testais la page d’abord sur son node->type, puis avec la fonction arg() pour tester l’url en cours. Mais je ne suis pas convaincu que ce soit la bonne méthode.
Pouvez vous m’éclairer ?
Merci
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Bonjour
C’est le contenu de ta page que tu veux modifier ? Dans ce cas là utilises plutôt le fichier node.tpl.php qui correspond à l’affichage de la node alors que page.tpl.php est utiliser pour le squelette de ton site.
Tu cherches à identifier la page, que veux-tu comme information ?
Depuis le fichier node.tpl.php
- Son Id est stocké dans la variable $node->nid.
- Son url est stocké dans $node_url.
Voici toutes les variables que tu peux retrouver dans le fichier node.tpl.php http://drupal.org/node/11816
Edit : Tu peux récupérer le nid de la node depuis le fichier page.tpl.php $node->nid.
Julien
Ideia.fr | Blog | Twitter
JulienD
319
Bonjour, et merci pour cet éclairage. L’utilisation du node.tpl.php est a priori une notion de base, mais j’étais passé à côté. :)
Je vais un peu plus loin alors. Dison que j’ai 2 nodes, id=1 et id=2. Leur affichage est différent.
Pour l’instant j’ai crée une fonction node_get_content() déclarée dans le template.php. J’affiche le retour de cette fonction dans le node.tpl.php. C’est le seul contenu de ce fichier.
Dans le template.php, je test l’id du node passé en paramètre de la fonction, et en fonction de ca je retourne une structure html avec mes contenus, différentes pour les deux nodes.
Est-ce une bonne façon de procéder ou devrais-je plutôt faire le test d’id directement dans le node.tpl.php ? Le faire dans le node.tpl.php permettrait de mieux visualiser la structure html dans le code, mais j’ai cru comprendre que c’est le template.php qui était sensé recevoir la logique conditionnel du projet.
Merci
ouissler
33
Cf cet article sur drupal.ogr : http://drupal.org/node/136647
Ceci permet d’avoir un template par noeud si nécessaire.
Il faut ensuite créer un fichier «node-<N° de noeud>.tpl.php pour chaque noeud, donc dans le cas précis : node-1.tpl.php et node-2.tpl.php.
Les autres noeuds seront affichés avec le template par défaut
vincent59
2428