Drupalovský modul Views je vskutku univerzální pomůcka. Nejenom, že nám umožní vytvořit výpisy obsahu odlišné od řazení na titulce nebo v kategoriích, ale dovede tento obsah také různými způsoby filtrovat. Obsah se tak může lišit způsobem zobrazení (standardní nadpis + perex vs. konkrétní prvky obsahu ve formě seznamu či tabulky), řazením a filtry.
Nejjednodušším příkladem, který vždy při předvádění Views zmiňuji, je zobrazení všech položek, které odpovídají určitému typu obsahu. Pokud používáte kategorie, je to jednoduché. Stačí použít adresu termínu z kategorie a máte vystaráno. Zobrazení na základě typu obsahu však jádro Drupalu nenabízí a to je příležitost pro modul Views.
Nebudu zde psát kompletní návod pro modul Views, ten najdete třeba v mojí knize o Drupalu. Rád bych vám předvedl praktické použití filtrů s nastavením vlastnosti exposed. To nám umožní, aby si uživatelé mohli sami definovat hodnotu, podle které je výpis obsahu v daném kritériu filtrován.
Vytvoření nového View
V následujícím příkladu budu uvažovat následující scénář. Na web přispívá více autorů a chceme umožnit, aby si uživatel s potřebným oprávněním mohl zobrazit všechny články konkrétního autora v nějakém časovém období.
Nejprve tedy vytvoříme nový pohled - View, a to pomocí nabídky Prvky webu|Views|Add. Zadejte název (například autori) a vyberte běžné zobrazení uzlů. V průvodci pokračujte na další stránku, kde si nové zobrazení naklikáme.
Nejprve nastavíme obecné vlastnosti u výchozí nastavení Defaults. Klepněte na odkaz unformatted vedle nastavení Style a zvolte si zobrazení ve formě tabulky. Nastavte počet položek na stránku v hodnotě Items per page a zapněte použití stránkovače - Use pager.
Chcete-li omezit přístup k novému výpisu, pak klepněte na odkaz vedle slova Access a nastavte přístupy podle uživatelských rolí. Následně je specifikujte.
Nyní klepněte na tlačítko + v políčku Fields, kterým postupně přidáme prvky z obsahu, které chceme v tabulce zobrazit. Použil jsem nadpis článku, datum zadání, jméno autora a typ obsahu.
Příprava View
Nyní následuje to nejdůležitější - klepněte na tlačítko + u Filtrů a přidejte filtr Uzly:Vydáno s hodnotou Ano. To zajistí, že se ve výpisu zobrazí jen vydané články. Podobným způsobem přidejte filtrování podle Uživatel:název (čili jména autora článku) a Uzly:Post date (tedy datum vydání článku - nastavte jej na rozsah od do). Při jejich definici nezapomeňte před uložením stisknout tlačítko Exposed. Díky tomu budou tyto dva filtry viditelné uživatelům a ti budou moci měnit hodnotu, podle které filtrujete.
Z nabídky vlevo si nyní vyberte Stránku a klepněte na tlačítko Add display. Na stránku pak klepněte a v políčku Page settings u ní nastavte URL (cestu), pod kterou bude dostupná. Nic dalšího neupravujte a celé View nakonec uložte.
Výsledná stránka
Když se nyní podíváte na adresu, kterou jste pro stránku s upraveným výpisem nastavili, bude výsledek vypadat nějak takto:
Exposed Filters v praxi
Všimněte si, že filtr není natvrdo nastaven a můžete jej specifikovat vyplněním jednoduchého formuláře, který nabízí políčka určená jako Exposed filtr.
Máte-li nějaké dotazy k problému, napište do komentářů. Jen prosím, abyste nežádali vysvětlení práce s Views od úplného začátku, to určitě není smyslem tohoto článku.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
a ako sa to dá zobraziť v bloku ? lebo ked tam zadám tap ze blok tak mi nevznikne ziaden blok. Dakujem
Exposed form in block
napríklad aako je to u ukulele.sk o ktorom ste písali majú tam blok s rozšíreným vyhľadávaním dakujem za odpoved
Viz předchozí odpověď. Exposed form in block. Musíte si udělat Exposed filtry a potom si je touto volbou dát do bloku. Blok poté v administraci bloků zapnete do nějakého regionu.
Zišiel by sa aj nejaký mini-návod ako spraviť RESET button pre exposed filters