Drupal: využití exposed filtrů pro uživatelské vyhledávání

Zastavili jste se někdy nad tím, že vestavěné vyhledávání v Drupalu je sice pěkná věc, ale nenabízí uživatelům vyhledání obsahu podle konkrétních kritérií? Umožněte jim prohledávání podle data vydání, různé kombinace kategorií, filtrování dle autorů a podobně. Postačí vám jediné - modul Views a příslušně nastavené filtry.

Reklama

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

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

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.

Tagy: 

Reklama

Komentáře

Zišiel by sa aj nejaký mini-návod ako spraviť RESET button pre exposed filters

a ako sa to dá zobraziť v bloku ? lebo ked tam zadám tap ze blok tak mi nevznikne ziaden blok. Dakujem

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.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Přidat komentář