Reklama

Jak wyświetlić listę terminów ze słownika?

Erewhon, czw., 01/03/2007 - 21:38
Kategorie:

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

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

Jeszcze nie zagłosowano

Odpowiedzi

Dodaj nową odpowiedź

Zawartość pola nie będzie udostępniana publicznie.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <pre> <blockquote>
  • Znaki końca linii i akapitu dodawane są automatycznie.
CAPTCHA
To pytanie sprawdza czy jesteś człowiekiem, a aby zapobiec przed spamem.
Image CAPTCHA
Enter the characters shown in the image.