Přejít k hlavnímu obsahu

Drupal Views a členění obsahu do kategorií

Jeden z nejlepších a nejpoužívanějších modulů Drupalu je modul Views. Tento modul v podstatě odstíní tvůrce webu od psaní dotazů do databáze. Drupal Views umožňuje jednoduchou tvorbu různých stránek výpisů s libovolným obsahem.

Tvorba stránek ve Views je sice jednoduchá, ale pokud mám obsah členěný do více kategorií a pro každou kategorii chci stránku s výpisem obsahu, tak se situace trochu komplikuje. Vytvořit více stránek je díky klonování stránek celkem rychlé, ale problém nastane ve chvíli, kdy je potřeba ve výpisu provést změnu, která se týká všech kategorií. Tady nás klonování nezachrání. Je potřeba projít všechny stránky Views a ručně je upravit. Naštěstí lze tento problém ve Views vyřešit.

Členění obsahu do kategorií

Řekněme, že máme typ obsahu článek, který je členěn do rubrik (např. Novinka, Blog, Bleskovka, atd.). Toto je celkem běžný scénář. Obvykle chceme, aby jednotlivé rubriky měly svoje výpisy článků. Existují v podstatě dva způsoby, jak tuto situaci řešit. 

Ruční tvorba stránek ve Views

První z nich je tvorba stránky ve Views pro každou rubriku. Což je pro pár stránek relativně v pořádku, ale pro více rubrik je toto řešení téměř nepoužitelné. 

Views v kombinaci s taxonomiemi

Pokud použijete Views a taxonomie, Views za vás automaticky vytvoří stránku s výpisem obsahu, který patří do dané rubriky. Na jednoduchém příkladu zkusím popsat jak na to.

Příklad použití Views +Taxonomie

Přidání taxonomie

Nejdřív je potřeba vytvořit taxonomii (kategorii) se seznamem všech rubrik. Přidáme taxonomii Kategorie a vložíme kategorie Blog a Novinka. Výsledek by měl vypadat asi jako na obrázku 1.

Obrázek 1 - Ve slovníku (taxonomii) kategorie jsou přidané kategorie Blog a Novinka.

 

U jednotlivých kategorií si nastavím URL, pod kterým chci výpis zobrazit. V našem příkladu chci, aby se všechny články patřící do blogu zobrazovaly pod URL www.example.com/blog a novinky pod URL www.example.com/novinky. Nastavení jednotlivých rubrik by mělo vypadat například jako na následujících obrazcích.

Obrázek 2 - Ukázka nastavení termínu (kategorie) Blog.

Obrázek 3 - Ukázka nastavení termínu (kategorie) Novinka.

Přidání taxonomie do typu obsahu

Po přidání taxonomie s rubrikami, je potřeba přidat do články volbu kategorie. To udělám tak, že v menu Structure > Content types > Article > Manage fields, přidám field Term reference, na dříve přidaný slovník (viz Obrázek 4).

Obrázek 4 - Přidání Term reference na vytvořené katerie v typu obsahu článek.

Povolení Views

Pokud chci, aby Views vytvářely stránku pro každou rubriku, musím toto konkrétní View povolit. To udělám tak, že v menu Structure > Views povolím View s názvem Taxonomy term (viz Obrázek 5). Toto view je v základu modulu Views.

Obrázek 5 - Zapnutí potřebného view pro automatické vytváření stránek podle kategorií.

Přidání obsahu

Nyní již stačí přidat články a nastavit jim rubriku. Zkusíme tedy přidat jeden článek s kategorií Blog (viz Obrázek 6) a jeden s kategorií Novinka (viz Obrázek 7). 

Obrázek 6 - Ukázka přidání článku do kategorie Blog.

Obrázek 7 - Ukázka přidání článku do kategorie Novinka.

Výsledek

Po uložení článku s nastavenou rubrikou můžeme nyní otestovat výsledek. Pokud zadáte do prohlížeče URL www.example.com/blog nebo www.example.com/novinka, zobrazí se námi přidaný obsah (viz Obrázek 8 a 9).

Obrázek 8 - Při zádání adresy www.example.com/blog se zobrazí články z kategorie Blog.

Obrázek 9 - Při zádání adresy www.example.com/novinka se zobrazí články z kategorie Novinka.

Shrnutí

Jak je vidět z přechozího příkladu, Drupal umožňuje relativně jednoduchým způsobem členit obsah do různých kategorií, ke kterým je schopen dynamicky generovat stránky s výpisem obsahu patřícím do dané kategorie. V našem konkrétním případě se zobrazil článek s kategorií Novinka na stránce www.example.com/novinka a článek s kategorií Blog na stránce www.example.com/blog . Je jasné, že toto řešení je velice flexibilní, takže pro přidání nové kategorie je pouze potřeba přidat nový termín (rubriku) mezi kategorie.

 

Chci vědět víc o Drupalu!