Drupal 7 a ThemeKey: přepínání témat vzhledu podle nejrůznějších pravidel

Chcete na webu s Drupalem střídat dvě nebo více témat vzhledu podle toho, v jaké části webu se návštěvník nachází, zda je přihlášen, zda napsal komentář, článek, zda na web kouká o víkendu, jestli je administrátor, jaký má nastaven jazyk a podobně? Pak potřebujete modul ThemeKey, ve kterém vše nastavíte přímo z administrace.

Před delší dobou jsem na Maxiorlovi publikoval článek a videonávod o modulu Sections. Ten vám umožňuje nastavit si pro různé části webu odlišná témata vzhledu. Sekce zde tvoříte na základě URL adres, je tedy třeba je správně navrhnout. Modul Sections rovněž dovede vypisovat informaci o aktuální sekci do šablony stránky, kde s ní lze dále pracovat.

Co však modul Sections už neumí, je pohodlné přiřazování témat vzhledu podle jiných pravidel, než je část cesty ke stránce v URL. Pokud byste chtěli zobrazit odlišné téma vzhledu například pro určitý webový prohlížeč, pro uživatele s konkrétním operačním systémem, pro uživatele posílající komentář nebo pro řadu dalších pravidel (včetně těch, která jsou zmíněna na začátku tohoto článku), použijte modul ThemeKey.

Přepínání různých témat vzhledu s pomocí ThemeKey

Instalace modulu ThemeKey nevyžaduje žádné další přípravy, prostě jej jenom nakopírujte do příslušného umístění (třeba sites/all/modules) a přejděte do administrační části Moduly. Zde najdete sekci ThemeKey tvořenou několika moduly.

Pro použití ThemeKey, jak jej zmiňuji v tomto článku, byste měli zapnout minimálně ThemeKey, ThemeKey Compatibility a ThemeKey UI. Všimněte si též modulu ThemeKey User Profile. Ten vrací do Drupalu 7 možnost, aby si uživatel přepínal téma vzhledu ve svém profilu. V šestce byla tato funkce přímo součástí jádra Drupalu.

Po zapnutí zmíněných modulů můžete přejít do nového administračního nastavení v Konfigurace > Uživatelské rozhraní > ThemeKey. Na kartě Theme Switching Rule Chain najdete trojici rozbalovacích panelů s příklady použití ThemeKey a s detailním vysvětlením jednotlivých klíčů a operátorů.

Použití a nastavení ThemeKey je však do jisté míry intuitivní. Zkusme si nastavení, které výchozí téma vzhledu zamění za jiné v případě, že se uživatel dívá na web v pondělí. Myslím, že je to docela dobrá ukázka flexibility pravidel, která lze pomocí ThemeKey definovat.

Ve formuláři pro přidávání nového pravidla pro přepínání témat vyberte z první rozbalovací nabídky položku system:day_of_week, jako operátor ponechejte = a jako hodnotu zadejte třípísmenné označení příslušného dne. V našem případě zde bude Mon. Poté vyberte téma vzhledu, do kterého se má web v daný den přepnout a pravidlo uložte.

Drupal 7 a ThemeKey

Hodnoty, které lze jednotlivým klíčům přiřazovat, najdete zmíněny v rozbalovacím panelu Properties Explained. U dne v týdny byste se tedy dočetli, že reaguje na třípísmenné onačení dnů v týdnu, tak jak jsou definovány u PHP funkce date().

Nastavení ThemeKey

Na kartě Nastavení najdete několik voleb týkajících se samotného modulu ThemeKey. Všechna tato nastavení jsou vysvětlena, upozornit chci hlavně na položku Cron cleans up page cache. Jestliže měníte téma vzhledu v závislosti na čase, podobně jako v našem příkladu s pondělkem, ujistěte se, že je tato volba zapnutá. Pokud by cron nevyčistil cache stránky, nemuselo by návštěvníkovi příslušné téma vzhledu naskočit.

Tolik tedy krátké seznámení s modulem ThemeKey. Jak vidíte, přepínání témat vzhledu podle nejrůznějších podmínek je s ním hračkou a zvládnete to bez programování.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

návštěvník

Velmi užitečný modul, který určitě využiji.
Jenom nevím, jestli načítání celých témat nebude trvat dlouho...

Přidat komentář

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

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

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.

@maxiorel na Twitteru

Maxiorel na Twitteru