Sledujte ma na Twitteri

Šablóny

ModularCMS využíva šablónovaciu knižnicu PHP Smarty, pri tvorbe modulov alebo zásahov do systému a pod. je vhodné poznať základy práce s toto knižnicou. Šablóny sa kompilujú do PHP, ich používanie teda nemá negatívny vplyv na celkový výkon systému.

Výhody šablón

Hlavnou výhodou použitia šablón je úplné oddelenie prezentačných a aplikačných funkcií systému. V prípade potreby zmeny vzhľadu stačí zmeniť šablónu a netreba zasahovať do aplikačnej logiky a naopak, v prípade zmeny aplikačnej logiky nie sú potrebné zmeny šablón.

Základy práce so šablónami

Komentár

{* komentar *}

Výpis premennej

{$premenna}

Prechod cez pole

{foreach from=$pole item=i}
{$i} {* vypíš i *}
{/foreach}

Podmienky

{if podmienka}

{else} / {elseif podmienka}

{/if}

Modifikátory

{$premenna|modifikator:parameter} {*napríklad {$text|truncate:80} *}

Viac informácií nájdete v dokumentácií ku knižnici PHP Smarty.

Textové konštanty a internacionalizácia

Keďže ModularCMS podporuje vytváranie obsahu v rôznych jazykoch, texty v šablónach by nemali byť pevné, ale malo by isť o konštanty zo súborov s lokalizáciou (i18n/jazyk.txt) použité s modifikátorom t. Ak chcete napríklad vypísať konštantu home, ktorá má v slovenčine hodnotu Úvod (home = Úvod v i18n/sk.txt) a v angličtine Home (home = Home v i18n/en.txt, použijete zápis {“home”|t}.

Vzťah modulov a šablón

Knižnica PHP Smarty deklaruje PHP triedu, ktorá slúži na prácu so šablónami. V triede Page (a všetkých odvodených) je inštancia tejto triedy dostupná ako PHP premenná $this->tpl.

Premenná $this->tpl obsahuje metódu, pomocou ktorej je možné zo šablóny (.tpl súbor) vygenerovať HTML kód. Premenné, ktoré chceme v šablóne používať, je nutné v module najprv pripraviť a nastaviť pomocou metódy $this->tpl->assign(). Metóda $this->tpl->display(sablona.tpl) vygeneruje HTML zo šablóny sablona.tpl a pošle ho na výstup PHP skriptu.

Postup výroby HTML stránky pomocou PHP Smarty potom vyzerá nasledovne:

  1. premenné, ktoré má šablóna obsahovať nastavíme pomocou metódy $this->tpl->assign()
  2. v šablóne tieto premenné použijeme (viď sekcia Základy práce so šablónami)
  3. nakoniec zavoláme metódu $this->tpl->display(sablona.tpl), ktorá vygeneruje HTML kód a pošle ho na výstup

Používanie šablón

Všetky šablóny sú uložené v adresári tpl. Názov každej šablóny pozostáva z prefixu, ktorý zodpovedá názvu modulu, ktorému šablóna patrí, prípadne prefixu admin, ak ide o šablónu administračnej časti. Špeciálnou šablónou je šablóna admin-links.tpl, ktorá obsahuje menu pre autentizovaného užívateľa.

V šablónach je možné používať všetky konštrukcie knižnice PHP Smarty a pripravené premenné, existuje aj niekoľko užitočných premenných ktoré sú prístupné vždy:

baseUrl - základná adresa webu
gfx - cesta k adresáru s obrázkami a štýlmi
lib - cesta k adresáru s knižnicami
arg - pole parametrov v URL
path - pole s cestou vrámci navigácie
menu.side - vygenerované menu
news - pole s novinkami
blocks - pole s blokmi

Pri vytváraní odkazov vrámci ModularCMS je potrebné využiť PHP Smarty modifikátor rA, ktorý sa postará o korektné vygenerovanie odkazu (s ohľadom na mod_rewrite a pod.).