Ako vytvoriť abecedný index pre view v Drupale?

  • Posted on: 6 January 2010
  • By: petiar

Predvčerom mi zákazník poslal e-mailom požiadavku, že chce istý zoznam na jeho webe zoradiť podľa abecedy a pridať k nemu aj abecedný index. Taký, kde je každé písmeno abecedy odkazom za stránku, na ktorej budú zobrazené len tie položky zoznamu, ktoré začínajú na konkrétne písmeno.

Vďaka tomu, že jeho web je postavený na Drupale, teda najlepšom dostupnom redakčnom systéme na tieto účely, som to mal hotové veľmi rýchlo a odozva to potvrdila. "Nuž, niet nad spokojného zákazníka", vravím si v takých chvíľach.

Stále mi však vŕtalo hlavou, či na to riešenie, ktoré som spravil bez použitia na to určeného modulu, predsalen nejaký neexistuje. Existuje. Volá sa Views Alpha Pager a jeho jedinou chybou je, že pre Drupal 6, resp. pre Views 2 neexistuje vydanie. A tak bolo pravdepodobne moje riešenie asi jediným možným (i keď variácií naň môže byť viacero). Tak sa na to poďme pozrieť:

Celý trik je v tom, že písmeno abecedy budeme Drupalu podsúvať v URI, teda v odkaze. Takže všetky články začínajúce na A budú mať adresu www.nasweb.sk/clanky/a. Takýto parameter predávaný v URI sa vo Views terminológii volá argument. Jeden si teda v našom view aj hneď pridáme a nastavíme ho zhruba podľa priloženého obrázku.

Kľúčovým nastavením je v ňom tzv. Glossary mode, ktorý zaručí práve to, že sa nám vo view zobrazia len tie položky, ktorý prvé písmeno je totožné s tým v URI.

Toto je tá jednoduchšia, klikacia časť. Ak chceme pridať nad view aj abecedný index tak nás čaká aj trošku písania kódu, i keď je to kód veľmi primitívny a väčšinu čas budeme aj tak používať len CTRL+C a CTRL+V.

Tento kód bude vyzerať nejako takto:

a
b
c

a tak ďalej až po Z. A napíšeme ho, samozrejme, do hlavičky view. Nezabudnite zvoliť príslušný vstupný formát tak, aby akceptoval všetky HTML tagy, ktoré ste použili, pretože ako som už naznačil, variácií na tento nápad môže byť viac a možno prídete na niečo iné, čo by sa vám ešte zišlo.

Ja vám pre tentokrát môžem sľúbiť len to že ak sa mi podarí zistiť ako nastaviť variabilnú dĺžku argumentu, napíšem ešte lepší návod. Totižto, jediným problémom s ktorým si zatiaľ neviem rady je nastavenie view tak aby bral do úvahy argumenty o rôznej dĺžke. To znamená, že článok začínajúci napríklad slovom Drupal sa objaví na stránke www.nasweb.sk/clanok/d ale aj www.nasweb.sk/clanok/dru. Držte mi palce, ak sa mi to podarí vyriešiť, rád sa podelím.

Pridať nový komentár