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

Styliser des champs CCK dans un type contenu

Référence en anglais sur drupal.org : http://drupal.org/node/807330
8 Juin 2010 - 06h56


Fichiers gabarits (Template files)

Tous les thèmes disposent d'un fichier node.tpl.php qui est le fichier gabarit standard (ou fichier maquette de mise en page) . Si le votre ne l'a pas, vous pouvez le copier depuis le module node qui se trouve dans le dossier modules/node de votre installation Drupal. Le noyau Drupal vous permet l'utilisation du variant suivant pour chaque type de contenu que vous avez créé dans votre site :

node-<NOM_DU_TYPE_DE_CONTENU>.tpl.php

Par exemple : node-chronique.tpl.php sera utilisé pour styliser un node de type chronique.

Important : lorsque vous ajoutez un nouveau modèle de mise en page, vous devez reconstruire le registre de thème, sinon le nouveau modèle ne sera pas détecté par le moteur de thème. Pour reconstruire ce registre :

  • rendez-vous dans les pages d'administration des modules (/admin/build/modules)
  • ou utilisez le lien « clear cache » du module Devel.

Variables gabarits

CCK met les variables suivantes à disposition à votre disposition pour leur utilisation dans les mises en pages :

$<NOM_DU_CHAMP>_rendered

Contient le rendu HTML du champ, y compris le libellé et toutes les valeurs du champ, selon le paramétrage défini dans l'onglet Afficher les champs.

$<NOM_DU_GROUPE>_rendered

Contient le rendu HTML du groupe de champs (s'il existe), y compris le libellé et tous les groupes de champs, selon le paramétrage défini dans l'onglet Afficher les champs.

Cette variable contient également le code HTML contenu dans toutes les variables $_rendered du groupe de champs.

$NOM_DU_CHAMP

Contient les valeurs brutes des champs, dans le format tableau habituellement utilisé en interne par CCK. Ce que vous trouverez là dépendra du type du champ.

Chaque valeur contient également un élément « view », qui renferme la valeur mise en forme et prête à afficher. Par exemple :

array(
  0 => array(
  'nid' => 5,
  'view' => '&lt;a href="node/5"&gt;Titre du node 5&lt;/a&gt;',
  ),
);

Les données brutes (raw) ne sont pas assainies pour l'affichage, il est donc déconseillé de les utiliser telles quelles. Utilisez la valeur « view » ou passez-la via la fonction content_format().

Exclure des champs de la variable $content

Par défaut, la variable $content des gabarits de node contient le rendu HTML de tout le node : les champs et groupes de champs CCK, mais aussi le corps, les fichiers joints, les widgets...

Si vous voulez utiliser les variables plus précises décrites ci-dessus, vous pouvez utiliser les cases à cocher Exclure de l'écran Afficher les champs afin que l'affichage des champs soient omis dans la variable $content.

Notez qu'il y a des cases à cocher Exclure pour le teaser comme pour le node complet. Si l'affichage de votre écran est limité, il se peut que vous ne puissiez voir la colonne Exclure qui se trouve complètement à droite de la page.

En utilisant les variables $_rendered et $_rendered vous pouvez personnaliser l'affichage et la mise en page de ces quelques champs ou groupe de champs CCK et laissez la variable $content s'occuper de l'affichage du reste du contenu, sans valeurs dupliquées.

Astuce avancée

Les cases à cocher Exclure affectent tous les thèmes actifs. Toutefois, sur les sites ayant plusieurs thèmes, la liste des champs à exclure de $content peut être différente selon les thèmes, en fonction de la structure des gabarits de nodes.

Un thème peut outrepasser ces paramètres en surchargeant la fonction theme_content_exclude() pour spécifier la liste des champs à exclure pour ce thème (voir le PHPDoc de la fonction pour plus d'infos).

Cas particuliers : les nodes dans les champs nodereference

En plus de ce qui précède, les suggestions suivantes seront prioritairement recherchées pour les nodes affichés en tant que valeurs de champs nodereference utilisant les formateurs « teaser » ou « full node » :

node-nodereference-<REFERRING_FIELD_NAME>-<TYPE_NAME>.tpl.php
exemple : fichier gabarit "suggestion" node-nodereference-field_noderef-chronique.tpl.php - S'il est présent, il sera utilisé pour la mise en forme d'un node de type « chronique » lorsqu'il est référencé dans le champ « field_noderef ».
node-nodereference-<TYPE_NAME>.tpl.php
exemple : fichier gabarit "suggestion" node-nodereference-chronique.tpl.php - S'il est présent, il sera utilisé pour la mise en forme d'un node de type « chronique » lorsqu'il est référencé dans n'importe quel champ de type nodereference.
node-nodereference-<REFERRING_FIELD_NAME>.tpl.php
exemple : fichier gabarit "suggestion" node-nodereference-field_noderef.tpl.php - S'il est présent, il sera utilisé pour la mise en forme d'un node référencé dans le champ « field_noderef ».
node-nodereference.tpl.php
S'il est présent, il sera utilisé pour la mise en forme de nodes référencés dans un champ de type nodereference.

Les variables supplémentaires suivantes sont disponibles dans les gabarits pour les nodes référencés :

$referring_field
Le champ de type nodereference qui référence le node en cours.
$referring_node
Le node qui référence le node en cours.