Anatomie témat vzhledu pro Drupal 6

Prezenční vrstva je jedním ze základních stavebních pilířů všech webových CMS a Drupal není výjimkou. Je tím prvním, co každý návštěvník uvidí, když vstoupí na Váš web a přesto ji hodně drupalistů zanedbává. V následujících několika článcích se pokusím přiblížit, jak v Drupalu pracovat s view vrstvou a s tématy vzhledu. Předem však chci upozornit na to, že cokoliv se zde dočtete v češtině, můžete nastudovat také v angličtině na oficiálních stránkách Drupal.org.

Témata vzhledu v Drupalu

Téma vzhledu je ve své podstatě jen kolekce souborů, které definují, jak se stránka bude zobrazovat návštěvníkům. Drupal nabízí mnoho možností, jak zobrazit obsah naší stránky. Kromě zcela nových témat vzhledu je možno vytvářet také jejich podtémata nebo variace na již vytvořená témata. K vytvoření vlastního tématu vzhledu stačí jen jediný soubor, soubor s příponou .info, avšak naprostá většina témat používá více než jeden soubor.
Následující obrázek hezky ilustruje strukturu a význam základních souborů zobrazovací vrstvy CMS Drupal verze 6.
Struktura prezenční vrstvy Drupalu

Povinný soubor .info

Všechny potřebné informace o tématu vzhledu jsou napsány v tomto jediném souboru. Jsou zde uložena meta data, názvy souborů se styly a javascriptem nebo popisy regionů bloků.
Podle názvu tohoto souboru bude Drupal dále identifikovat unikátní jméno celého tématu a proto bychom se měli vyvarovat kolizi názvů souborů.

Soubory šablon .tpl.php

Většinou obsahují xHTML a značky proměnné jazyka PHP, ale mohou obsahovat i jiné typy dat, jako například xml rss. Každý takový soubor uchovává informace o určitém kousku dat, kterým můžeme změnit vzhled. Jaké stránce nebo její části budeme měnit vzhled zaleží na jméně souboru. Můžeme mít page.tpl.php pro všechny stránky a zároveň i třeba page-node.tpl.php pro bližší specifikaci stránek uzlů nebo page-front.tpl.php pro definování vzhledu úvodní stránky. Nemusíme však mít žádné soubory .tpl.php, čímž Drupalu řekneme, aby použil výchozí vzhled. Při úpravách bychom se měli vyvarovat složitým logickým strukturám. Pro začátek práce je nejlepší zkopírovat si výchozí soubory témat ze složky modulů jádra nebo přídavných modulů do své složky s tématem a dále je upravovat podle vlastních představ.
Pozn.: Když přidáte/odděláte soubory ke svému tématu, musíte resetovat cache registrů témat, kterou si Drupal vytváří.

template.php

Nepovinný avšak velmi užitečný soubor, ve kterém je uložena podmínková logika a zpracování výstupních dat. Pomáhá udržovat soubory .tpl.php štíhlé, bez zbytečného kódu, tím, že obsahuje preprocesory pro generování proměnných, které jsou záhy přeměněny na značky pro .tpl.php. Dále je tento soubor vhodným místem pro další funkce zpracovávající surový výstup z databáze. Soubor by měl začínat otevíracím tagem PHP &gl?php, ale je doporučeno vynechat ukončovací tag.

Podtémata

Chovají se naprosto stejně jako jakákoliv jiná témata, avšak dědí všechny upravené soubory od svého nadtéma. Vytvářejí se uvedením direktivy base-theme ve svém souboru .info. Dají se dokonce vytvářet hierarchie podtémat a to tak, že se jako nadtéma uvede podtéma vyšší úrovně. Drupak tuto hierarchii nikterak nelimituje a počet úrovní podtémat je jen na tvůrci.

Logo a screenshot tématu

Nejsou naprostou nutností pro funkčnost témat vzhledu, ale jsou doporučena. Screenshoty se zobrazují na stránce administrace témat vzhledu a na stránce uživatelských účtů, pokud mají možnost měnit témata vzhledu.