Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Personaliser l'affichage de nodes spécifiques avec le module Custom Node Template

Référence en anglais sur drupal.org : http://drupal.org/node/639580
12 Février 2010 - 05h27


Objet

Le but principal de ce module est de fournir une méthode simple pour personnaliser l'affichage des nodes, en agissant individuellement, node par node. Il n'est pas destiné à surcharger des fonctionnalités qui pourraient l'être directement via le thème ou via un autre module. En particulier, si vous voulez personnaliser l'affichage de TOUS les nodes d'un type de contenu donné, vous y arriverez probablement mieux en passant par votre thème (ou peut-être avec un autre module comme Contemplate).

Si vous n'êtes pas arrivés sur cette page depuis la page du module Custom Node Template, vous pouvez également lire la description du projet sur la page projet de Custom Node Template (en anglais).

Pourquoi utiliser ce module ?

En général, ce module sera plus utile pour surcharger ou personnaliser l'affichage d'un node au cas par cas, ou pour fournir cette possibilité à ceux qui n'ont pas accès ou la faculté de personnaliser un thème. Il peut également servir aux utilisateurs expérimentés et aux développeurs lorsqu'il n'est pas pratique, faisable ou efficace d'arriver au même résultat via la personnalisation d'un thème.

Par exemple, on peut ajouter du code pour une template suggestion de node dans le fichier template.php et ajouter au thème des fichiers node-nodeID.tpl.php. Mais il n'est pas très efficace de procéder ainsi pour surcharger ou personnaliser l'affichage de plusieurs nodes. Ce module vous permettra d'ajouter un gabarit de node personnalisé dans votre thème et de sélectionner ensuite ce gabarit pour les nombreux nodes concernés.

Regardez aussi les différents cas de figure, à la fin de cette page, pour des informations qui vous aideront à déterminer si ce module vous est utile.

Installation

Installez comme d'habitude, voyez http://drupal.org/node/70151 pour plus d'informations (en anglais).

Paramétrage

Paramétrez les droits d'accès dans Administrer >> Gestion des utilisateurs >> Droits d'accès >> module custom_node_template :

administer custom node templates

Les utilisateurs avec le droit d'accès administer custom node templates verront une section Node template settings dans la page de création de contenus.

FAQ

N'oubliez pas de lire également les exemples d'utilisation qui suivent cette FAQ.

Q. : Comment utiliser ce module ?

R. : Lors de la création d'un node, vous pouvez indiquer l'utilisation d'un fichier gabarit particulier (node.tpl). La section Node template settings affichera une liste des gabarits de nodes disponibles dans votre thème. Sélectionnez simplement celui que vous voulez voir utilisé pour l'affichage du node en cours de création. Dans les paramètres de chaque type de contenus, vous pouvez également spécifier le gabarit de node à utiliser par défaut. Les nodes de ce type de contenu utiliseront alors ce paramétrage, à moins que vous ne décidiez d'utiliser un autre gabarit lors de la création d'un nouveau node.

Q. : Comment est-ce que j'ajoute des gabarits de node personnalisés ?

R. : Pour ajouter un gabarit de node personnalisé, il suffit de créer et d'ajouter un fichier node.tpl à votre thème. Le nom du fichier gabarit devra correspondre à ce format : node-XXXXXX.tpl où XXXXXX est un terme de votre choix. Quelques astuces et propositions pour le nom des fichiers tpl peuvent être trouvées dans le module Help.

Q. : Pourquoi utiliser ce module ?

R. : Ce module est probablement plus utile pour personnaliser un gabarit de node au cas par cas. Il peut également être utilisé pour attribuer un gabarit de node particulier en fonction dutype de contenu. Cependant, il n'est pas nécessaire de procéder ainsi si vous n'utilisez qu'un seul gabarit de node par type de contenu. Par défaut, Drupal chargera le gabarit de node approprié au type de contenu, s'il en existe un dans votre thème, selon le format des template suggestions.

En général, ce module sera plus utile pour surcharger ou personnaliser l'affichage d'un node donné, au cas par cas, ou pour fournir cette possibilité à ceux qui n'ont pas accès ou la faculté de personnaliser un thème. Il peut également servir aux utilisateurs expérimentés et aux développeurs lorsqu'il n'est pas pratique, faisable ou efficace d'arriver au même résultat par la personnalisation d'un thème.

Q. : En quoi ce module est-il différent d'autres modules ?

R. : De nombreux modules tiers comportent « template » dans leur nom, mais « template » fait partie de ces mots dont le sens varie selon l'utilisation. Dans le cas de ce module, « template » se réfère aux fichiers gabarits d'un thème. Custom Node Template se distingue des autres modules de différentes façons. Quelques-uns sont plus robustes et « intensive » par nature, alors que ce module se veut simple d'utilisation. Cependant, la principale différence de ce module est qu'il n'est pas à proprement parler lié aux types de contenus, ni destiné à être une solution pour modifier l'affichage des nodes selon leurs types de contenus. pour ce dernier point, il y a plusieurs façons de procéder, via un thème ou à l'aide d'autres modules.

Si vous souhaitez seulement personnaliser l'affichage de nodes selon leurs types de contenus - c'est à dire que tous les nodes d'un type de contenu donné sont affichés de la même façon - alors ce module n'est peut-être pas le bon. La façon la plus simple de personnaliser l'affichage de tous les nodes d'un type de contenu donné est d'ajouter un fichier node-nom_du_type_de_contenu.tpl.php à votre thème.

Q. : Puis-je arriver aux mêmes fins sans ce module, en ne passant que par mon thème ?

R. : Techniquement parlant : oui. Et dans certains cas de figure, ce sera le meilleur choix. Par exemple, si vous ne voulez que personnaliser l'affichage de tous les nodes d'un type de contenu donné, vous le ferez mieux via votre thème (comme expliqué plus haut), ou peut-être avec l'assistance d'un autre module. Dans ce cas, il n'y a pas vraiment d'indication à utiliser ce module.

Un autre cas consisterait à essayer de surcharger ou personnaliser l'affichage d'un node en particulier. Dans ce cas il sera probablement plus simple d'ajouter le code adéquat à votre fichier template.php puis d'ajouter un fichier node-XXX.tpl.php à votre thème (où XXX sera l'ID du node - c'est un des façons de faire). Toutefois, si vous avez plusieurs nodes à afficher de la sorte, ce module devient utile. Ajouter plusieurs gabarits de node en se basant sur l'ID des nodes n'est probablement pas efficace (et pourrait alourdir le thème).

Q. : Il y a-t-il des conseils pour nommer les gabarits de nodes personnalisés ?

R. : Il y a quelques scénarios de nommage que vous voudrez sans doute éviter lorsque vous ajoutez un gabarit de node personnalisé à votre thème. Par exemple, à moins que vous ne le fassiez délibérément, vous n'appellerez pas un fichier gabarit de node personnalisé node-4.tpl. Selon les thèmes, on peut trouver une fonction de pré-traitement qui ajoute à Drupal l'ID du node comme template suggestion. Si c'est le cas avec le thème que vous utilisez, Drupal chargera le fichier node-4.tpl pour le Node/4. Si vous donnez le même nom à votre gabarit de node personnalisé, cela marchera quand vous choisirez le gabarit de node pour un node en particulier, mais cela chargera aussi le même gabarit pour Node/4, ce que vous ne souhaiterez peut-être pas.

Un autre exemple, vous pouvez utiliser un gabarit de node qui comporte le type de contenu dans son nom. Mais si vous ne voulez pas que ce gabarit de node soit le gabarit par défaut pour ce type de contenu, l'autre nom sera probablement meilleur.

Exemples d'utilisation

Voici quelques cas de figure qui vous aideront à déterminer si le module vous sera utile.

Je veux personnaliser l'affichage d'un type de contenu donné

Non, le module n'est pas conseillé.

L'affichage d'un type de contenu peut être obtenu dans un thème par l'ajout d'un fichier node-nom_du_type_de_contenu.tpl.php. Il n'est pas nécessaire d'ajouter du code dans le thème. L'utilisation de ce module n'apportera pas de nouvelles fonctionnalités.

Je veux personnaliser l'affichage d'un seul node

Vous pouvez utiliser ce module, mais il ne sera pas très utile.

Pour surcharger l'affichage d'un seul node, vous pouvez ajouter du code PHP au fichier template.php de votre thème (ajouter des node suggestions pour Drupal) puis lui ajouter un fichier node-XXX.tpl.php où XXX sera l'ID du node.

Je veux personnaliser l'affichage de toute la page.

Non, ce module ne vous y aidera pas.

Ce module est adéquat pour l'affichage d'un node. Pour personnaliser ou surcharger une page complète, vous devrez soit personnaliser le fichier page.tpl.php de votre thème, soit utiliser un autre module.

Mon site affiche des infos de publication sur les nodes, mais il y a quelques nodes pour lesquels je ne veux pas afficher ces infos.

Ce module sera probablement parfait pour vous.

Vous pouvez ajouter un gabarit de node à votre thème, qui ne contiendra pas les champs infos de publication (auteur, date, etc). Puis, dans la section Node Template Settings d'un node donné, sélectionnez ce gabarit de node et voilà ! (en français dans le texte).

Sur mon site, j'utilise un module de social bookmarking qui est affiché dans la section Liens de mes nodes, mais j'ai quelques nodes par-ci par-là dans lesquels je ne veux pas que le widget social bookmarking apparaisse.

Ce module sera probablement parfait pour vous.

Vous pouvez ajouter un gabarit de node à votre thème qui ne contiendra pas la variable links, puis, comme dans le cas de figure précédent, vous sélectionnerez ce gabarit de node dans la section Node Template Settings du node concerné.