Š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:
- premenné, ktoré má šablóna obsahovať nastavíme pomocou metódy $this->tpl->assign()
- v šablóne tieto premenné použijeme (viď sekcia Základy práce so šablónami)
- 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.).


