[Resolu] Afficher la taxonomy..

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,

je souhaiterais afficher simplement les termes d'un contenu(noeud), ces termes sont des tags que j'inscris lors de la création du contenu...
malheureusement je n'ai pas su controler l'affichage après un print_r de $node.
Je peux bien afficher les termes en faisant un print $terms mais ceci sont sous forme de liens. j'aimerais simplement qu'il soit sous forme de texte.

Auriez-vous une solution? une fonction dans template.php ? une requette sql qui les collecte directement ?
Merci d'avance.

Il suffit d'ajouter une fonction dans template.php et de l'utiliser sur votre node.tpl.php un peu dans ce genre.
Dans template.php :

<?php
function monTheme_taxonomy_liens($node) {
   if (
count($node->taxonomy)) {
      
$output = '';
        foreach(
$node->taxonomy as $term) {
        
$output .= $term->name;
     }
      return
$output;
    }
}
?>

Puis dans node.tpl.php :

<div id="termes"><?php print monTheme_taxonomy_liens($node); ?></div>

Cet fonction est la plus simple possible, il vous suffit de faire des modification dans monTheme_taxonomy_liens pour avoir un meilleur contrôle.

merci takeova, décidément tu me rends beaucoup service :) !

j'ai essayer de comprendre un peu la fonction pour ne pas copier/coller bêtement, je pense que je vais regarder les hook Drupal de plus près !
A bientôt :)

ah par contre, est-ce possible de mettre :

<?php
 
print theme_taxonomy_liens($node);
?>

dans un block ?
celà fonctionne bien dans le tpl d'un noeud, mais dans un bloc placé dans un noeud celà n'affiche rien...
j'ai pourtant bien cocher l'option "code php" pour le format du contenu du bloc (de php filter(core)).

merci encore !

j'ai cru comprendre qu'un block ne connaissait pas l'objet $node.
après quelques recherche je suis tombé sur ce morceau de code:

<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$node = node_load(arg(1));
}
?>

je l'ai inséré dans le block avant le:

<?php
print theme_taxonomy_liens($node);
?>

et celà fonctionne bien, je ne sais pas si c'est la bonne solution.
En tout cas, je la donne, si cela peut en aider d'autres ^^