Drupal 7 переглядає контекстний фільтр (таксономія: відображення підсумків), відображаючи читабельну назву терміна замість term-id


9

В моєму огляді я використовую контекстний фільтр - з « підсумковим висновком » за замовчуванням - для фільтрації моїх результатів за терміном таксономії .

Проблема полягає в тому, що підсумок-результат групується за переліком таксономічних термінів-ідентифікаторів (включаючи кількість вузлів), а не читаються людиною імена термінів-ідентифікаторів.

  • 1 (21)
  • 2 (16)
  • тощо.

Чи можна змінити (або підключити) вихідний результат резюме, не вказавши його термін-id, а термін-id-ім'я?

  • Термін ім'я А (21)
  • Термін ім'я B (16)

(Мені це не турбує, якщо фактична URL-адреса запиту залишається такою ж.)

Моя мета - створити більш читаний вихідний формат мого резюме таксономії, який може зрозуміти кінцевий користувач.


Я знайшов те саме запитання, як задати аргумент Views для повернення імен термінів таксономії, а не ідентифікаторів терміна? , а також активна дискусія про це на Встановіть назву представлення на ім'я терміна, коли аргументом фільтра є термін id . Вони доставляють пластир, але без жодного успіху.
Стефан Луїй

Відповіді:


7
  1. Встановіть свій погляд на поля та розкрийте поле, яке містить пов'язаний термін таксономії.

  2. Встановіть свій контекстний фільтр для фільтрації за терміном таксономії та виберіть для включення валідатора.

  3. Встановіть валідатор на термін таксономії та встановіть прапорець для свого словника.

  4. Виберіть параметр для типу значення фільтра як "Ім'я терміна, перетворене в ідентифікатор терміна.

  5. Збережіть фільтр і перейдіть до вікна попереднього перегляду. Якщо ви введете текстову назву свого терміна, ви повинні побачити потрібний вміст.

Якщо ви передаєте інформацію з URl, можливо, вам доведеться встановити прапорець "Перетворити тире в URL в пробіли у значеннях фільтрів імен термінів", а також, оскільки ім'я машини використовує тире


Щось я забув, це те, що, вибираючи контекстний фільтр, він повинен бути терміном таксономії (ім'ям) і використовувати співвідношення з полем у вузлах, які ви відображаєте, до самого терміна, а не вмісту: my_term_field_name
CR47,

Ця відповідь розповідає про те, як змусити контекстуальний фільтр працювати з читаною людиною назвою терміна таксономія, але він не відповідає на питання. Питання полягає в тому, як відобразити читану людиною назву терміна таксономія у відфільтрованих результатах.
BrokenBinary

5

Скопіюйте файл "views_view-summary.tpl.php" у папку "module / contrib / views / topic". (Ви можете зробити його переглядом або заблокувати конкретне додавання імені файлу-суфікса.)

Примітка. Якщо ви використовуєте це як перегляд відображення адміністратора, переконайтеся, що ви скопіювали цей файл у папку теми адміністратора, а не в папку тем за замовчуванням!

Вам не потрібні зміни в налаштуваннях дисплея. Просто налаштуйте ваш tpl-переосмислення під наступні рядки, і ваші терміни-ідентифікатори будуть перетворені в читані назви термінів:

<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

З вашим прикладом або, наприклад, на основі заголовка вузла як контекстного фільтра, він працює належним чином. Але в моєму питанні контекстний фільтр базується на терміні Таксономія. У цьому випадку в резюме буде відображено лише ідентифікатор терміна, і ви не зможете показати більше - читабельних - імен термінів.
Стефан Луїй
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.