web-dev-qa-db-fra.com

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

À 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ésumé-résultat est groupé par une liste de taxonomie term-id's (y compris le nombre de nœuds) et les noms de termes non 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.

9
Stefan Looij
  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 saisissez 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.

7
Ashlar

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>
5
Stefan Looij
1
uwe