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.
reklama

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
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 a Site Builder 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

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ář

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
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
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.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

@maxiorel na Twitteru

Maxiorel na Twitteru