Vytváření a nastavení themes, soubor .info

Při vytváření nového tématu vzhledu pro cms Drupal se nevyhneme vytvoření souboru .info. Právě v tomto souboru se definuje struktura webu, regiony bloků a přiřazují se k tématu css soubory s kaskádovými styly a javascript. Také se zde specifikuje, které nastavení bude zpřístupněno v administrátorské sekci.

O souboru s příponou .info

Každé drupalovské téma vzhledu musí ve svém adresáři obsahovat soubor s příponou .info. Bez tohoto souboru nebude totiž téma viditelné v administrátorské sekci.

Je také důležité vědět, že:

Drupal ukládá soubor .info do cache, proto se všechny změny projeví až po vyčištění cache.

Jméno souboru .info slouží v Drupalu k internímu (strojovému) pojmenování tématu vzhledu. Je tedy třeba dbát na jeho správné pojmenování. Stane-li se, že se téma jmenuje stejně jako jiný aktivovaný modul, může dojít k omezení funkcionality Drupalu, proto je zde určitá konvence v pojmenování. Název by měl začínat malým nebo velkým písmenem abecedy (nikdy ne číslicí) a dále by měl obsahovat jen číslice, písmena a potržítka.

Struktura souboru .info

Struktura souboru není nepodobná konfiguračním souborům typu INI. Jedná se o statický textový soubor, kde je na každém řádku jeden konfigurační výraz. Výraz se tvoří vždy jako pár klíč=hodnota, kde vlevo je klíč, neboli název nastavované vlastnosti a vpravo je hodnota této vlastnosti. Klíč je od hodnoty oddělen znakem "rovná se".

Středníky v textu slouží k zakomentování výrazu, tedy k jeho zrušení. Pokud je některý nepovinný klíč nedefinován, nastaví se jeho výchozí hodnota.

    Drupal rozumí těmto klíčům k nastavení:
  • name (povinný klíč)
  • description (doporučený klíč)
  • screenshot
  • version
  • core (povinný klíč)
  • engine (povinný klíč)
  • base theme
  • regions
  • features
  • stylesheets
  • scripts
  • php

Popis klíčů nastavení

name (povinný klíč)

Hodnotou je jméno tématu vzhledu určené lidem. Lidem čitelný název nemá tak přísné požadavky na způsob zápisu jako strojově čitelný název a může obsahovat i mezery a některé další znaky navíc.

name = Moje téma vzhledu 2.0

description (doporučený klíč)

Krátký popis tématu vzhledu, který se zobrazí na stránce s výběrem témat vzhledu v sekci Prvky webu v Administraci.

description = Toto téma vzhledu pro Drupal ještě nevzniklo a asi ani nikdy nevznikne

screenshot

Pokud chcete společně s popisem zobrazit v administraci i malý náhled vzhledu, přiřaďte jako hodnotu tomuto klíči cestu k obrázku s náhledem. Cesta k obrázeku je relativní a vychází se z adresáře tématu. Při nedefinovaném klíči bude Drupal hledat náhled v obrázku sreenshot.png v adresáři s tématem.

screenshot = images/screenshot.gif

version

Verze tématu. Zadávejte hodnotu pouze, pokud neplánujete vložit své téma vzhledu na drupal.org. V opačném případě bude totiž hodnota vložena automaticky komprimačním skriptem.

version = 2.0

core (povinný klíč)

Každý soubor .info drupalovského tématu vzhledu musí obsahovat označení verze jádra Drupalu, aby byla zachována kompatibilita. Pokud hodnota tohoto klíče nesouhlasí s hodnotou verze jádra Drupalu, téma vzhledu nebude aktivováno.

core = 6.x

engine (povinný klíč)

Nastavení motoru, který použije všechny funkce a šablony tématu vzhledu. Jako výchozí motor je možné uvést "phptemplate". Pokud je nastavení klíče engine vynecháno, má se za to, že téma má vlastní motor definovaný v souboru .theme, ovšem jedná se o volbu pouze pro velmi pokročilé uživatele.

engine = phptemplate

base theme

Pokud je téma vzhledu subtéma jiného tématu, hodnota klíče base theme udává rodičovské téma, ze kterého se odvozují výchozí vlastnosti subtéma.

base theme = garland

regions

Definice regionů bloků použitých tématem vzhledu. Definuje se jako pole tak, že na každý řádek se napíše jeden prvek pole. Prvek je uvozen klíčovým slovem regions bezprostředně následovaným hranatými závorkami, uvnitř kterých je strojově čitelný název regionu. Hodnota prvku je již klasicky za znakem "rovná se" a vyjadřuje lidem srozumitelný název regionu, který se objeví na stránce s nastavením bloků.
Pokud není pole klíčů regions specifikováno, bere se výchozí nastavení uvedené níže.

Názvy regionů je lepší psát anglicky, protože pak mohou být automaticky lokalizovány a dají se upravovat bez ohledu na téma vzhledu.

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer

features

Různé prvky drupalovské stránky, jako například primární odkazy, vyhledávací formulář nebo slogan webu, mohou být zobrazovány a skrývány podle potřeb uživatele. Které prvky lze takto nastavit, určíme polem klíčů features. Pokud některý z prvků v definici vynecháme, tak se v nastavení administrátorům nezobrazí.

features[] = logo
features[] = name
features[] = slogan
features[] = mission
features[] = node_user_picture
features[] = comment_user_picture
features[] = search
features[] = favicon
; Poslední dvě se v nastavení nezobrazí
; features[] = primary_links
; features[] = secondary_links

stylesheets

Protože jsou témata vzhledu tvořena kaskádovými styly, je nutné definovat, které css soubory. Od verze 6 drupalovského jádra, lze css soubory přidávat pomocí pole klíčů v souboru .info.

stylesheets[all][] = layout.css
stylesheets[all][] = colours.css

scripts

Podobně jako kaskádové styly se dá přidávat i javascript.

scripts[] = courvycorners.js

php

Definuje minimální verzi php, kterou může téma vzhledu využívat. Pro většinu témat vzhledu nemusí být hodnota tohoto klíče nastavena a použije se výchozí konstanta pro Drupal.

php = 4.3.3

Ukázkový soubor .info pro téma vzhledu v Drupalu

; $Id: mytheme.info,v 0.1 2009/07/08 13:52:40 fanda Exp $
 
name = My theme 2.0
description = Nice theme for ifanda.cz
screenshot = screenshot.gif
engine = phptemplate
version = "6.x-1.0"
core = "6.x"
 
regions[top_left] = top left
regions[top_left_middle] = top left middle
regions[top_right_middle] = top right middle
regions[top_right] = top right
 
features[] = logo
features[] = name
features[] = slogan
features[] = mission
features[] = node_user_picture
features[] = comment_user_picture
features[] = search
features[] = favicon
features[] = primary_links
features[] = secondary_links
 
scripts[] = js/jquery.equalheights.js
scripts[] = js/jquery.corner.js
 
stylesheets[all][] = css/style.css
stylesheets[all][] = css/colors.css

Jak použít klíč regions při vytváření Drupal themes

V souboru .info se pole klíčů regions nastaví výše uvedeným způsobem. Slova v hranatých závorkách jsou později názvy proměnných v souboru tématu vzhledu page.tpl.php a v jeho odvozeninách jako $left, $right atd. Slova na pravé straně výrazu jsou názvy sloupců pro umístění bloků, jako na obrázku, kde ovšem jsou názvy bloků lokalizovány do češtiny.
ukázka stránky s bloky

Na závěr ...
Obnovení cache v Drupalu

Aby se úpravy souboru .info projevily, musí se obnovit cache, která si soubor uchovává.
Uživatelé s příslušným oprávněním najdou tlačítko pro obnovení cache na stránce Výkon z administrátorské sekce Nastavení webu (/admin/settings/performance), úplně dole.