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' => '<a href="node/5">Titre du node 5</a>',
),
);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 $
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.
- Version imprimable
- 4482 lectures
-

Commentaires
Poster un nouveau commentaire