Właśnie stanąłem przed zadaniem, jak wyświetlić alfabetycznie listę terminów z konkretnego słownika (kategorii). Po przeszukaniu strony Drupal.org znalazłem rozwiązanie i trochę je zmodyfikowałem.
Na początku musimy znać numer naszego słownika, aby go poznać należy w Panelu Administracyjnym wybrać Kategorie z menu Zarządzaj | Zarządzanie zawartością. Następnie po wybraniu Edytuj słownik przy naszym słowniku, w pasku URL dostaniemy jego numer.
Link powinien wyglądać podobnie do przedstawionego poniżej, ostatni znak jest numerem słownika.
http://twoja.strona.pl/admin/content/taxonomy/edit/vocabulary/5Następnie w Bloku lub Artykule (zależnie od tego, gdzie będziemy otrzymać listę terminów) wpisujemy poniższy kod:
<?php
$vocabulary_id = 5;
$result = db_query("SELECT d.tid, d.name, MAX(n.created) AS updated, COUNT(*) AS count FROM {term_data} d INNER JOIN {term_node} USING (tid) INNER JOIN {node} n USING (nid) WHERE d.vid = $vocabulary_id AND n.status = 1 GROUP BY d.tid, d.name ORDER BY d.name");
$items = array();
while ($category = db_fetch_object($result)) {
$items[] = l($category->name .' ('. $category->count .')', 'taxonomy/term/'. $category->tid);
}
print theme('item_list', $items);
?>
Do zmiennej $vocabulary_id przypisujemy numer słownika.
Od tej pory możemy cieszyć się Listą terminów w formacie: Nazwa Terminu (w nawiasie liczba artykułów w terminie)
Oczywiście nie należy zapomnieć o włączeniu w Formacie danych opcji PHP Code.
Sprawdzone działanie na wersji 5, natomiast według opisu na Drupal.org powinno też działać w wersji 4.7





Odpowiedzi
Dodaj nową odpowiedź