Drupal 7は、コンテキストフィルター(分類:要約表示)を表示し、term-idの代わりに読み取り可能なterm-nameを表示します


9

私の見解では、コンテキストフィルター(デフォルトの「サマリー出力」付き)を使用して、結果を分類用語でフィルタリングしています。

問題は、ということである要約結果は分類のリストによってグループ化された用語-IDの(ノード数を含む)とない人が読める用語-ID名。

  • 1(21)
  • 2(16)

term-idをリストするのではなく、term-id-nameをリストすることによって、要約のビュー出力を変更(またはフック)することは可能ですか?

  • 用語名A(21)
  • 用語名B(16)

(実際のリクエストURLが変わらなくても問題ありません。)

私の目標は、エンドユーザーが理解できる、分類用語の概要のより読みやすい出力形式を作成することです。


回答:


7
  1. ビューをフィールドに設定し、関連する分類用語を含むフィールドを公開します。

  2. 分類用語をフィルタリングするようにコンテキストフィルターを設定し、バリデーターを含めるように選択します。

  3. バリデーターを分類用語に設定し、ボキャブラリーのチェックボックスをオンにします。

  4. フィルター値タイプのオプションとして、「用語名を用語IDに変換」を選択します。

  5. フィルターを保存して、プレビューボックスに移動します。用語のテキスト名を入力すると、目的のコンテンツが表示されます。

URlから情報を渡す場合、マシン名にダッシュを使用するため、「URL内のダッシュを用語名フィルター値のスペースに変換する」チェックボックスも選択する必要がある場合があります。


私が忘れていたのは、コンテキストフィルターを選択するときは、分類用語(名前)用であり、コンテンツではなく、用語自体に対して表示しているノードのフィールドとの関係を使用する必要があるということでした:my_term_field_name
CR47

この回答は、分類フィルター用語の人間が読める名前を使用してコンテキストフィルターを機能させる方法を示していますが、質問には回答しません。問題は、フィルタリングされた結果に分類用語の人間が読める名前を表示する方法です。
BrokenBinary

5

「views_view-summary.tpl.php」ファイルを「modules / contrib / views / theme」フォルダにコピーします。(ファイル名の接尾辞を追加することで、表示またはブロック固有にすることができます。)

注:これを管理ビュー表示として使用する場合は、このファイルをデフォルトのテーマフォルダーではなく、管理テーマフォルダー内にコピーしてください。

表示設定を変更する必要はありません。tpl-overrideを次の行に調整するだけで、Term-IDが読み取り可能なTerm-nameに変換されます。

<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>

1

あなたの例では、またはコンテキストフィルターとしてのノードタイトルに基づいて、それは正常に動作しています。しかし、私の質問では、コンテキストフィルターは分類法の用語に基づいています。この場合、概要には用語IDのみが表示され、より読みやすい用語名を表示することはできません。
Stefan Looij、2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.