Submitted by jsricard on
Bonjour,
Lorsque l'on utilise le module Views, il est possible de définir entièrement les champs que l'on désire faire apparaitre pour un type de contenu donné. Par contre, le layout et d'une manière générale le code HTML généré n'est pas vraiment customizable...
La solution vers laquelle je me suis tourné est donc Contemplate. Chouette, on a totalement la main sur l'affichage du contenu du "body" ou "teaser". Seulement, même si je met "rien" dans la partie php, on a toujours des choses affichées pour le noeud ("4 reads" en bas du noeud par exemple si on a le module statistics...)
Ma question est alors très simple : comment faire pour avoir totalement la main sur l'affichage du contenu d'un node ? (et donc s'abstraire du fait que d'autres modules puissent écrire dans le body ou le teaser d'un node.
Merci pour votre aide, si j'ai une solution élégante à ce problème, c'est officiel, drupal sera mon CMS favori !
C'est possible, mais vous
Permalien Soumis par Damien Tournoud le 3 Janvier, 2008 - 10:10
C'est possible, mais vous vous priveriez alors du principe même de Drupal, qui est que les modules interragissent entre eux.
Pour le "4 reads" affiché par le module Statistics, il est lié au fait que vous développez votre site avec l'utilisateur administrateur (uid=1, qui a tous les droits), ou avec un utilisateur qui a des privilèges élevés (en l'occurrence le privilège "view post access counter"). Les utilisateurs normaux ne pourraient pas voir cette information.
Damien
Merci pour le "4 reads",
Permalien Soumis par jsricard le 3 Janvier, 2008 - 11:40
Merci pour le "4 reads", effectivement il disparait lors d'une navigation anonyme...
Y-a-t-il alors un moyen "propre" de désactiver l'affichage (options ?), en mode teaser, du titre du node, et de la date/auteur de publication ? il doit certainement s'agir de paramétrer le module "node", non ?
Un moyen est d'utiliser les
Permalien Soumis par graou le 6 Janvier, 2008 - 20:00
Un moyen est d'utiliser les CSS avec des display: none;
C'est ce que je fais tout le temps.
Sinon, effectivement, contemplate ne donne pas la main sur le titre.
J'imagine qu'il faudrait attaquer les templates eux-mêmes, et c'est un peu plus lourd.
Perso je déconseil
Permalien Soumis par zmove le 10 Janvier, 2008 - 13:29
Perso je déconseil l'utilisation de display:none, car une personne qui n'utilise pas les CSS (un mal voyant par exemple) verra tout ce qui à été caché par cette propriété.
Il vaut mieu créer un fichier node-mon_type_de_node.tpl.php et d'afficher uniquement les variables sont tu as besoin. La liste de ces variables est donnée par contemplate.
Effectivement, je n'avais
Permalien Soumis par graou le 11 Janvier, 2008 - 13:40
Effectivement, je n'avais pas pensé à ça... Merci de le rappeler.
Bonjour jsricard, La
Permalien Soumis par drupalfrance le 15 Janvier, 2008 - 10:53
Bonjour jsricard,
La solution à ton problème est la suivante : il faut créer un template pour le type de noeud que tu veux personnaliser.
Supposons pour l'exemple que tu veuilles personnaliser les noeuds de type "story" :
1) Va dans le répertoire de ton thème et fais un copier-coller du fichier node.tpl.php (la copie doit se trouver dans le même répertoire que l'original).
2) Renomme le fichier copié en node-story.tpl.php. A partir de maintenant, c'est le template node-story.tpl.php qui est utilisé à chaque fois qu'une story est affichée. En éditant ce fichier, tu verras que tu contrôle l'affichage du titre, de la taxo... des stories.
3) Pour aller plus loin, tu pourrais même remplacer dans node-story.tpl.php la ligne
<?php print $content ?>
par le code généré par contemplate. Ainsi, tu auras dans un fichier unique tout le code qui contrôle l'affichage des noeuds story.