Drupal 7 wyświetla filtr kontekstowy (taksonomia: wyświetlanie podsumowania), wyświetlając czytelną nazwę-terminu zamiast terminu-id


9

Moim zdaniem używam filtra kontekstowego - z domyślnym „ podsumowaniem ” - do filtrowania wyników według terminu systematyki .

Problem polega na tym, że wynik podsumowania jest pogrupowany według wykazu taksonomii termin-id (w tym liczby węzłów), a nie czytelnych dla człowieka nazw termin-id.

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

Czy można zmienić (lub zaczepić) wynik wyświetlania podsumowania, nie wymieniając jego identyfikatorów-terminów, ale nazwy-terminów-identyfikatorów?

  • Nazwa terminu A (21)
  • Nazwa terminu B (16)

(Nie przeszkadza mi to, że faktyczny adres URL żądania pozostaje taki sam.)

Moim celem jest stworzenie bardziej czytelnego formatu wyjściowego mojego podsumowania terminów taksonomicznych, który użytkownik końcowy może zrozumieć.


Odpowiedzi:


7
  1. Ustaw widok na pola i wyświetl pole zawierające powiązany termin taksonomii.

  2. Ustaw filtr kontekstowy tak, aby filtrował termin taksonomiczny i wybierz opcję uwzględnienia walidatora.

  3. Ustaw walidator na termin taksonomia i zaznacz pole dla twojego słownictwa.

  4. Wybierz opcję dla typu wartości filtru jako „Nazwa terminu konwertowana na Identyfikator terminu.

  5. Zapisz filtr i przejdź do pola podglądu. Jeśli wpiszesz nazwę tekstową swojego terminu, powinieneś zobaczyć pożądaną treść.

Jeśli przekazujesz informacje z URl, może być konieczne zaznaczenie pola wyboru „Przekształć myślniki w adresie URL na spacje w wartościach filtru nazw terminów”, ponieważ nazwa komputera używa myślników


Coś, o czym zapomniałem, to to, że wybierając filtr kontekstowy, musi on dotyczyć terminu taksonomia (nazwa) i używać relacji z polem w węzłach, które wyświetlasz do samego terminu, zamiast treści: my_term_field_name
CR47

Ta odpowiedź mówi, jak sprawić, by filtr kontekstowy działał z czytelną dla człowieka nazwą terminu taksonomia, ale nie odpowiada na pytanie. Pytanie brzmi: jak wyświetlić czytelną dla człowieka nazwę terminu systematyki w filtrowanych wynikach.
BrokenBinary

5

Skopiuj plik „views_view-summary.tpl.php” do folderu „moduły / contrib / views / theme”. (Możesz ustawić wyświetlanie lub blokowanie przez dodanie przyrostka nazwy pliku).

Uwaga: Jeśli używasz tego jako widoku widoku administratora, upewnij się, że skopiowałeś ten plik w folderze motywu administratora, a nie w domyślnym folderze motywów!

Nie potrzebujesz żadnych zmian w ustawieniach wyświetlania. Po prostu dostosuj zastąpienie tpl do następujących wierszy, a twoje Term-ID zostaną przekonwertowane na czytelne nazwy Term:

<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

Twój przykład lub na przykład oparty na tytule węzła jako filtr kontekstowy działa poprawnie. Ale w moim pytaniu filtr kontekstowy opiera się na jego terminologii taksonomicznej. W takim przypadku w podsumowaniu będą wyświetlane tylko identyfikatory terminów i nie będzie można wyświetlić bardziej czytelnych nazw terminów.
Stefan Looij
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.