Drupal 7 visualise le filtre contextuel (taxonomie: affichage récapitulatif), affichant un nom de terme lisible au lieu de l'ID de terme


9

À mon avis, j'utilise un filtre contextuel - avec une « sortie récapitulative » par défaut - pour filtrer mes résultats par terme de taxonomie .

Le problème est que le résultat récapitulatif est groupé par une liste d' ID de termes de taxonomie (y compris un nombre de nœuds) et non de noms d'ID de termes lisibles par l'homme.

  • 1 (21)
  • 2 (16)
  • etc.

Est-il possible de changer (ou d'accrocher) la sortie de vue du résumé, en ne listant pas ses term-id, mais le term-id-name?

  • Nom du terme A (21)
  • Nom du terme B (16)

(Cela ne me dérange pas si l'URL de demande réelle reste la même.)

Mon objectif est de créer un format de sortie plus lisible de mon résumé de termes de taxonomie, qu'un utilisateur final peut comprendre.


Réponses:


7
  1. Définissez votre vue sur les champs et exposez le champ qui contient le terme de taxonomie associé.

  2. Définissez votre filtre contextuel pour filtrer un terme de taxonomie et sélectionnez pour inclure un validateur.

  3. Réglez le validateur sur le terme de taxonomie et cochez la case correspondant à votre vocabulaire.

  4. Sélectionnez l'option pour le type de valeur de filtre comme 'Nom du terme converti en ID de terme.

  5. Enregistrez le filtre et accédez à la zone d'aperçu. Si vous entrez le nom du texte de votre terme, vous devriez voir le contenu souhaité.

Si vous transmettez les informations de l'URl, vous devrez peut-être également cocher la case `` Transformer les tirets dans l'URL en espaces dans les valeurs de filtre de nom de terme '', car le nom de l'ordinateur utilise des tirets.


Quelque chose que j'avais oublié, c'est que lors de la sélection d'un filtre contextuel, il doit être pour le terme de taxonomie (nom) et utiliser une relation avec le champ sur les nœuds que vous affichez pour le terme lui-même, plutôt que le contenu: my_term_field_name
CR47

Cette réponse vous indique comment faire fonctionner le filtre contextuel avec le nom lisible par l'homme du terme de taxonomie, mais elle ne répond pas à la question. La question est de savoir comment afficher le nom lisible par l'homme du terme de taxonomie dans les résultats filtrés.
BrokenBinary

5

Copiez le fichier "views_view-summary.tpl.php" dans votre dossier "modules / contrib / views / theme". (Vous pouvez le rendre spécifique ou bloquer en ajoutant un suffixe de nom de fichier.)

Remarque: Si vous l'utilisez comme affichage-affichage administrateur, assurez-vous de copier ce fichier dans le dossier de thème administrateur, pas votre dossier de thème par défaut!

Vous n'avez besoin d'aucune modification dans vos paramètres d'affichage. Ajustez simplement votre tpl-override sur les lignes suivantes, et vos Term-ID sont convertis en Term-names lisibles:

<div class="item-list">
  <ul class="views-summary">
    <?php foreach ($rows as $id => $row): ?>
    <li>
      <a href="<?php print $row->url; ?>"<?php print !empty($row_classes[$id]) ? ' class="'. $row_classes[$id] .'"' : ''; ?>>
        <?php
        /* begin replacement */
        $term_object = taxonomy_term_load($row->link);
        print  $term_object->name; 
        /* end replacement*/
        ?>
      </a>
      <?php if (!empty($options['count'])): ?>
      &nbsp;(<?php print $row->count?>)
      <?php endif; ?>
    </li>
    <?php endforeach; ?>
  </ul>
</div>

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.