Jak na vylepšené nastavení viditelnosti bloků v Drupalu

Standardně nastavíte zobrazení bloků pro uživatelské role, pro konkrétní typy obsahu či na základě konkrétních URL adres, systémových nebo s aliasem. Ale co složitější pravidlo? Jak nastavit zobrazení bloku, pokud uzel obsahuje konkrétní hodnotu v konkrétním políčku? Blok pro nedostupné produkty? Blok pro články v konkrétní kategorii? A co blok pro uživatele, kteří nejsou v konkrétní uživatelské roli?
reklama

Všechny výše uvedené kombinace je samozřejmě možné v Drupalu řešit a dobrou zprávou je, že k tomu ani nemusíte psát vlastní modul s pluginem řešící nastavení viditelnosti. Jakkoli to není v Drupalu 8/9 složité.

Abyste byli schopni pokročilé kombinace naklikat, je nutné do Drupalu doplnit modul nazvaný Block Visibility Groups. V článku budu ještě ukazovat možnost nastavení bloku na základě termínu spojeného s článkem, což řeší rozšíření Block Visibility Groups nazvané Term condition.

Protože nastavení tohoto modulu nemusí být úplně jasné na první pohled a ani se mi nevešel do knihy 333 tipů a triků pro Drupal 9, pojďme se na něj podívat krok za krokem.

Jak nastavit viditelnost bloků pro uživatele, kteří nejsou v konkrétní uživatelské roli

Řekněme, že máte uživatelskou roli na e-shopu pojmenovanou VIP. A blok budete chtít zobrazit všem uživatelům, kteří nejsou v této roli. Jistě, v základu v Drupalu naklikáte, kdo může blok vidět. Jenže se tu v daném požadavku bije skutečnost, že blok chcete zobrazit i přihlášenému uživateli bez role. Pokud byste blok zapnuli pro přihlášené, pak ho VIP uvidí automaticky, protože jsou zkrátka i v roli přihlášených. A to je scénář, kde nastupují Block Visibility Groups.

Block Visibility Groups v Drupalu

Jak zobrazit blok pro články v určité kategorii

V posledních týdnech jsem několikrát řešil potřebu zobrazení bloku u článků nebo stránek, pokud jsou spárovány s určitou kategorií. Konkrétně například bloky s rychlým kontaktem, který byl upraven podle toho, zda stránka pojednává o té či oné firemní činnosti.

V základu to Drupal nedovede, Block Visibility Groups k tomu potřebuje zmíněné rozšíření Term condition. Poté je postup už podobný, jako uvádím výše.

Tedy připravíte nové pravidlo, tentokrát vyberete nastavení podmínky na základě Termínu a pomocí automaticky dokončovacího políčka tento termín vyhledáte. Uzel, kterého se to týká, definujete jako Node from URL. Pravidlo pak jenom spárujete v nastavení konkrétního bloku.

Určitě na Block Visibility Groups koukněte. Je stabilní pro Drupal 8 i 9, jeho vydání pokrývá Security Team a kromě zmíněného rozšíření pro termíny k němu vznikly i rozšíření pro tokeny nebo slovníky.

Tagy
Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal a Symfony. Obojí také školím spolu se základy SEO. Jsem Acquia Certified Developer (Drupal 7) a Site Builder (Drupal 8 & 9) a napsal jsem několik knih o Drupalu. Ve volných chvílích cestuji a podnikám výlety. Více se dozvíte na mém firemním webu.

reklama

Komentáře k článku

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Novinka listopad 2020

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
reklama
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru