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.
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í.
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
Nevím přesně, co myslíte, ale žádné zpomalení jsem nezaznamenal.
Velmi užitečný modul, který určitě využiji.
Jenom nevím, jestli načítání celých témat nebude trvat dlouho...