Pro následující návod jsem zvolil - doufám, že názorný - následující příklad. Vezměme jednoduchý web realitní kanceláře, která prezentuje svou nabídku na internetu. Prodává pozemky a budovy. Každý z těchto dvou typů nemovitostí má svá specifika.
Uživatel může na webu této realitní kanceláře prohledávat nabídku pomocí stránky s nastavitelným filtrem. Vybere si zde typ nemovitosti (budovu či pozemek) a některá její specifika. Následně mu web zobrazí jen ty záznamy, které zadaným kritériím odpovídají.
Z výše uvedeného zadání je myslím zřejmé, že budete potřebovat nejlépe dva typy obsahu, pomocí polí k nim přiřadit jednotlivé parametry jako jsou specifikace inženýrských sítí, výměry, počty pokojů, typ budovy atd. Následně tyto dva typy obsahu vyfiltrujete do Views a zobrazíte na samostatné stránce. Vznikne vám tak jednoduchý katalog.
Aby uživatel mohl z katalogu vybrat jen ty záznamy, které jej zajímají, přidáte do View vystavené filtry a uživatel si tak bude moci sám vybírat, zda si zobrazí pozemky či budovy a která další kritéria při hledání upřesní.
Máme tedy situaci, kdy ve vystavených filtrech máme dva různé typy obsahu a několik dalších filtrů pracujících s políčky, která se nacházejí buď u obou, nebo střídavě u jednoho či druhého typu obsahu.
Views bohužel ve výchozím stavu nedovede vystavené filtry dynamicky měnit tak, aby třeba při výběru pozemku zmizel vystavený filtr pro volbu typu budovy. Řešení ale existuje a jmenuje se Views Dependent Filters.
Více už vám ukáže následující videonávod:
K návodu jedna poznámka. Tam, kde mluvím o dependency filtru mám samozřejmě na mysli Views Dependent Filter.
Možné varianty
A pokud byste si práci s Views chtěli procvičit: Situaci popisovanou v návodu je možné řešit i s jediným typem obsahu. Vytvoříte si typ obsahu nemovitost, kterému přiřadíte políčko seznam se dvěma hodnotami - budova a pozemek. Poté přiřadíte všechna možná políčka, která budete chtít u nemovitosti, ať už jakéhokoli typu, vyplňovat.
V sestaveném Views pak nebudete další filtry ukrývat podle typu obsahu, ale právě podle políčka se seznamem typů nemovitosti. Pokud by vám vadilo, že při vkládání nemovitosti do webu bude zobrazeno množství nesouvisejících polí (např. proč u pozemku zobrazovat pole pro zadání typu budovy), použijte modul Conditional Fields. Také on dovede skrývat políčka dle různých závislostí, ovšem ne ve Views, ale právě ve formuláři pro vkládání uzlu.
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
V případě Taxonomy bych použil modul Hierarchical Select.
Dá se někde porosím zapnout, aby se filtr zobrazil i u bloku? Když vytvořím blok, tak se mi stále nezobrazuje... Díky.
Myslím, že ne. Vystavené filtry jsou vidět pouze u stránky. Ale můžete nechat vystavené filtry zobrazit jako samostatný blok.
Díky za tenhle návod. Měl bych pár dotazů. Parametry (třeba typ nemovitosti ) jsou asi udělany přes text field- select. Máte zkušenosti jak by to pracovalo s Taxonomy terms nejlepe i s hierarchii?
díky Svaťa