Drupal 7 melihat filter kontekstual (taksonomi: tampilan ringkasan), menampilkan term-name yang dapat dibaca alih-alih term-id


9

Dalam pandangan saya, saya menggunakan filter kontekstual - dengan " output ringkasan " default - untuk menyaring hasil saya dengan istilah taksonomi .

Masalahnya adalah bahwa hasil ringkasan dikelompokkan berdasarkan daftar taksonomi term-id's (termasuk jumlah simpul) dan bukan term-id yang dapat dibaca manusia.

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

Apakah mungkin untuk mengubah (atau mengaitkan) tampilan tampilan ringkasan, dengan tidak mencantumkan term-id-nya, tetapi term-id-nama?

  • Nama jangka A (21)
  • Nama jangka B (16)

(Tidak masalah bagi saya jika URL permintaan yang sebenarnya tetap sama.)

Tujuan saya adalah membuat format output yang lebih mudah dibaca dari ringkasan istilah taksonomi saya, yang dapat dipahami oleh pengguna akhir.


Saya telah menemukan pertanyaan yang sama ketika ditanya tentang Bagaimana cara menggunakan argumen Tampilan untuk mengembalikan nama istilah taksonomi dan bukan ID jangka? , dan diskusi aktif tentang hal itu di Atur judul tampilan ke nama istilah saat argumen filter adalah istilah id . Mereka memberikan tambalan, tetapi tidak berhasil.
Stefan Looij

Jawaban:


7
  1. Setel tampilan Anda ke bidang dan buka bidang yang berisi istilah taksonomi terkait.

  2. Tetapkan filter kontekstual Anda untuk memfilter istilah taksonomi dan pilih untuk menyertakan validator.

  3. Atur validator ke istilah taksonomi dan centang kotak untuk kosakata Anda.

  4. Pilih opsi untuk jenis nilai filter sebagai 'Nama term dikonversi ke Term ID.

  5. Simpan filter dan pergi ke kotak pratinjau. Jika Anda memasukkan nama teks istilah Anda, Anda akan melihat konten yang diinginkan.

Jika Anda meneruskan informasi dari URl Anda mungkin harus memilih kotak centang 'Ubah tanda hubung di URL ke spasi dalam nilai filter nama jangka' juga karena nama mesin menggunakan tanda hubung


Sesuatu yang saya lupa adalah bahwa ketika memilih filter kontekstual, itu harus untuk Istilah Taksonomi (nama) dan menggunakan hubungan dengan bidang pada node yang Anda tampilkan untuk istilah itu sendiri, daripada Konten: my_term_field_name
CR47

Jawaban ini memberi tahu Anda cara membuat filter kontekstual bekerja dengan nama yang dapat dibaca manusia dari istilah taksonomi, tetapi itu tidak menjawab pertanyaan. Pertanyaannya adalah bagaimana menampilkan nama yang dapat dibaca manusia dari istilah taksonomi dalam hasil yang difilter.
BrokenBinary

5

Salin folder "views_view-summary.tpl.php" folder "modules / contrib / views / theme" Anda. (Anda dapat membuatnya melihat atau memblokir spesifik dengan menambahkan akhiran nama file.)

Catatan: Jika Anda menggunakan ini sebagai tampilan admin, pastikan Anda menyalin file ini dalam folder tema admin, bukan folder tema default Anda!

Anda tidak memerlukan perubahan apa pun dalam pengaturan tampilan Anda. Sesuaikan tpl-override Anda dengan baris berikut, dan Term-ID Anda dikonversi menjadi Term-names yang dapat dibaca:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.