Smarty Template Engine 34. díl – Nastavení I.
Tak jako v posledních dílech, ukážeme si jakým způsobem ovlivnit chování Smarty Template Engine pomocí tzv. Smarty Class Variables. Ty se vždy zadávají v php souboru, nejlépe v hlavičkovém souboru a to ve tvaru.
$smarty->variable = hodnota;
template_dir
Defaultně je tato složka nastavena na hodnotu: './templates', přičemž se vychází z exekutivního umístění skriptu.
Tato základní proměnná nastavuje umístění šablon/templates. Stejně tak se z této složky automaticky načítají includované soubory. Nedoporučuje se nastavovat tuto složku do složek s oprávněním root.
hlavicka.php
$smarty->template_dir = './templates';
compile_dir
Defaultně je nastaveno na: 'templates_c', přičemž se vychází z exekutivního umístění skriptu.
Proměnná nastavuje umístění složky pro zkompilované šablony. Důležité je této složce povolit práva pro zapis, tedy alespoň na hodnoty 775.
Složka musí být nastavena nejlépe realitvně a nedoporučuje se nastavovat tuto složku do root dokumentů.
hlavicka.php
$smarty->compile_dir = 'templates_c';
config_dir
Defaultně je nastaveno na: './configs', přičemž se vychází z umístění exekutivního skriptu.
Tato proměnná nastavuje umístění konfiguračních souborů uživatele. Nedoporučuje se nastavovat tuto složku do root dokumentů.
hlavicka.php
$smarty->config_dir = './configs';
plugins_dir
Defaultně je nastaveno na: './plugins', přičemž se vychází z umístění knihoven Smarty, tedy z umístění knihovny: 'Smart.class.php', defaultně: './smarty/'.
Pokud tedy zadáme relativní cestu k složce, bude Smarty automaticky vyhledávat ve složce smarty. V případě, že složku nenalezne, přesune oblast hledání do umístění exekutivního skriptu.
V této složce by se měli nacházet všechny funkce a uživatelské funkce, jež můžeme ve Smarty Template Engine využívat (popsali jsme si již v dřívějších dílech).
Toto nastavení umožňuje zadat i více umístění, jako „array“ == pole umístění. Smarty pak bude vyhledávat určité funkce ve všech složkách, ovšem v pořadí, jak jsou složky zadány v proměnné!!!
V následujícím příkladě si ukážeme přiřazení umístění do pole.
hlavicka.php
<?php
$smarty->plugins_dir = array(
'./plugins',
'../meknihovny/',
'./new/plugins'
);
?>
debugging
Aktivuje debuggovací konzoli, respektive zobrazí javascriptové okno, které Vás informuje o základních nastaveních Vámi zobrazované šablony. Jmenovitě jde především o informace o includovaných šablonách, dále o proměnnách, přiřazených z aplikační do prezenční logiky. Nezobrazí však proměnné, vytvořené přímo v šabloně pomocí funkce „{assign}“.
hlavicka.php
$smarty->debugging = false;
debug_tpl
Nastavuje řetězcem jméno šablony, do které má být vypsána debugovací konzole. Defaultně je tato proměnná nastavena na 'debug.tpl' a hledá jí v umístění 'SMARTY_DIR', tedy v umístění základních tříd Smarty, především: 'Smarty.class.php'.
hlavicka.php
$smarty->debug_tpl = 'debug.tpl';
debugging_ctrl
Tato proměnná umožňuje alternativním způsobem povolit zobrazení debugovací konzole. Do nastavení proměnné se vlastně zadává podmínka zobrazení stránky tak, aby se konzole mohla zobrazit. Tedy jaké musí být URL / název šablony proto, aby se konzole zobrazila. To vše v případě, že proměnná '$debugging' je nastavena na false, v opačném případě bude vždy ignorována.
V následujícím příkladě si ukážeme jak zobrazit konzoli v případě, že se jako stránka zobrazí localhost.
hlavicka.php
<?php
$smarty->debugging = false;
$smarty->debugging_ctrl = ($_SERVER['SERVER_NAME'] == 'localhost') ? 'URL' : 'NONE';
?>
autoloaded_filters
O filtrech jsme sice ještě nemluvili, přesto si ukážeme tuto proměnnou, jež se používá v případě, že bychom chtěli nahrat libovolný filtr při každém volání šablony. Specifikuje, že má být filtr volán automaticky nahrán a použit. Zadává se jako asociativní pole.
Následující příklad ukazuje jak naplnit proměnnou.
hlavicka.php
<?php
$smarty->autoload_filters = array('pre' => array('trim', 'stamp'),
'output' => array('convert'));
?>