Contemplate VS views

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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 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", 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 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 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.

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.