Smarty Template Engine 36.díl - Nastavení III.
V tomto díle budeme pokračovat v ukázce nastavení Smarty.
Konfigurační soubory
V následujícím bloku jen zevrubně připomenu možnosti nastavení Smarty a konfiguračních souborů. To hlavní už bylo řečeno v dílech 30 – 33.config_overwite
Nastavuje, zda povolit přepisování stejně pojmenovaných proměnných v konfiguračním souboru. Defaultně se načítá poslední změněná proměnná, naopak v případě zadání na FALSE se proměnné z konfiguračního souboru ukládají do pole a dostaneme tak možnost jejich vypisování např. V cyklu.
config_booleanize
V případě defaultního nastavení, tedy TRUE, se budou automaticky přepisovat hodnoty proměnných 'on/true/yes', 'off/false/no' na booleanovsou hodnotu. Pokud nastavíme tuto proměnnou na FALSE, je pak možné jejich použítí v šabloně krom podmínky i jako jejich konkrétní textové (nebooleanovské) hodnoty.
Zkuste si pro příklad použít následující zdrojové kódy pro oba příklady. Připomínám, že pro shlédnutí změn je třeba provést změnu i v konfiguračním souboru.
muj_config.conf
hodnota = yes;
Druhý příklad je zakomentovaný. Pro ukázku stačí odkomentovat.
hlavicka.php
<?php
require_once("./smarty/Smarty.class.php");
$smarty = new Smarty();
$smarty->config_booleanize = TRUE;
//$smarty->config_booleanize = FALSE;
$smarty->template_dir = './smarty/templates';
$smarty->compile_dir = './smarty/templates_c';
$smarty->cache_dir = './smarty/cache';
$smarty->config_dir = './smarty/config';
?>
index.tpl
{include file='./hlavicka.tpl' hlavicka=#hlavicka#}
<p>
{config_load file='muj_config.conf'}
{if #hodnota#}
ANO
{else}
NE
{/if}
{#hodnota#}
</p>
{include file='./paticka.tpl'}
config_read_hidden
V případě nastavení této proměnné TRUE bude umožněno používat konfigurační proměnné, jež byly skryty přidáním tečky před název sekce, i přes jejich nastavení na privátní. Defaultně je tedy nastavena hodnota na FALSE.
config_fix_newlines
Pokud ponecháme defaultní hodnotu na TRUE, odřádkování v konfiguračních souborech bude změněno z ' ' a ' ' na ' '. V případě nastavení na FALSE tyto hodnoty změněny nebudou.
Další nastavení
default_template_handler_func
Tato funkce zavolá šablonu, jež se má zavolat v případě, že ta námi volaná příkazem 'assign' není nalezena. Funkce hleda v umístění, nastaveném direktivou 'templates'. Defaultní hodnota přiřazena není!
hlavicka.php
$smarty->default_template_handler_func = 'default.tpl';
left_delimiter
Jednoduše nastavuje levou značku pro uvození Smarty tagu v šabloně. Defaultně tedy nastaveno na hodnotu '{'.
right_delimiter
Naopak nastavuje pravou značku pro uvození Smarty tagu v šabloně. Defaultně tedy nastaveno na hodnotu '}'.
compiler_class
Upřesňuje název třídy, je se stará o zkompilování šablony na PHP kód (jež se pak ukládá do složky nastavené direktivou: 'compile_dir'). Pokud nemáte nějaký závažný důvod, nedoporučuje se tuto direktivu měnit. Možno snad v případě, kdy si třídu přesunete z defaultního umístění ve složce 'smarty'.
hlavicka.php
$smarty->compiler_class = 'Smarty_Compiler';
request_vars_order
Nastavuje pořadí, v nichž jsou vyžadovány registrované proměnné v šabloně. Pro znalce PHP podobné nastavení 'variables_order' v 'php.ini'.
hlavicka.php
$smarty->request_vars_order = '';
request_use_auto_globals
Nastavuje pro Smarty hodnotu, kterou v PHP znáte jako 'register_globals'. V případě defaultního nastavení TRUE požaduje zadávání proměnných z PHP ve tvaru '$_[]'. Naopak při nastavení na FALSE požaduje zadání plného tvaru '$_typ[hodnota]'.
hlavicka.php
$smarty->request_use_auto_globals = 'true';