Afficher des contenus sous condition

Affichage conditionnel au fait que nous ne soyons pas dans $page:

ligne 1: si pas dans le contexte de $page.

Extraire des éléments d’un objet donné

Le fichier <mon_projet>\sites\all\themes\<mon_theme>\node.tpl.php qui est une surcharge du fichier <mon_projet>/modules/node/node.tpl.php.

Par défaut, on affiche à l’écran l’intégralité des informatiosn contenues dans l’objet $content via print render($content);.
Ce que je veux, c’est à en extraire la liste des tags pour l’afficher à un autre endroit dans le template.

En en-tête de fichier :

En utilisant la méthode dpm() de devel, on a accès en front à toutes les informations contenues dans l’objet $content.

Ce qui nous donne en front :

drupal7_customize_node

Code pour afficher uniquement les Tags, extraits de $content :

  • ligne 1: on crée une variable $tags dans laquelle on récupère les informations de l’élément field_tags contenues dans $content.
  • ligne 2: je vérifie si il y a du contenu dans $tags.
  • ligne 3: si oui, je l’imprime à l’écran.

A savoir: à partir du moment où j’ai extrait les informations de l’élément field_tags contenues dans l’objet $content via <?php $tags = render($content['field_tags']); ?>, elles ne seront plus affichées quand j’affiche l’objet $content via <?php print render ($content); ?> et ceux même si je ne tente pas de les afficher via <?php if ($tags): ?>| Filed under: <?php print $tags; ?><?php endif; ?>.
Cette méthode s’avère donc intéressante si je décide de ne pas afficher certains éléments d’un objet donné.

Il y aurait une possibilité d’afficher les informations 2 fois avec la méthode show() (<?php $tags = show($content['field_tags']); ?>), mais ça n’a pas marché lors d’un test pas poussé du tout… A creuser donc…

Masquer certains éléments contenus dans un objet

Pour masquer les éléments comments et links de l’objet $content, utiliser la méthode hide():