Smarty Template Engine 32.díl - Konfigurační soubory III.

Napsal (») 17. 8. 2009 v kategorii PHP/HTML, přečteno: 1224×
obrazky/smarty.gif

Smarty Template Engine 32. díl – Konfigurační soubory III.


V tomto díle si ukážeme zbylé možnosti jak kodérů, tak samotných PHP programátorů, při práci s konfiguračními soubory.

Jsem programátor

Smarty v sobě skrývá spoustu pokročilých možností nastavení. Nastavují se stejně jako předešlé direktivy nejlépe v jakémsi hlavičkovém souboru, z kterého čerpá celá naše webová prezentace. V našem případě jde tedy o umístění v souboru: hlavicka.php.
Právě konfiguračními soubory se zabývají tyto parametry:

$config_dir
Popisovali jsme si již v předešlém díle. Slouží k nastavení výchozího adresáře pro umístění konfiguračních souborů.

$config_overwrite
nastavení: true/false, defaultně: true
V případě defaultního nastavení, tedy na true, nastavuje přepisování proměnných čerpaných z konfiguračního souboru tak, jak jsme si ukázali v minulém příkladě. Tedy, stejně pojmenovaná proměnná bude přepsána proměnnou stejného názvu, ale přidanou níže v kódu. Či, pokud je každá z nich umístěna v jiné sekci, uzavřené v konfiguračním souboru v hranatých závorkách, přednost bude mít ta, jejíž sekce je v šabloně volána níže.

Nastavení na false však umožňuje získat nečekanou možnost v případě, že proměnnou jakoby přetížíme v rámci jedné sekce. Můžeme pak takovouto posloupnost proměnných vypisovat jako pole prvků jak příkazy section, foreach, tak funkcí cycle.

V prvním příkladě si ukážeme chování při nastavení na defaultní hodnotu: TRUE
muj_config.conf
[Colours]
#barvicky
fC = #FF9900
fC = #00FF99
fC = #9900FF

Při volání v šabloně se dočkáme jediného výsledku, tedy načtení hodnoty poslední proměnné:
index.tpl
{config_load file='muj_config.conf' section=Colours}
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
<span style="color:{#fC#};">barva:{#fC#}</span>
</p>
{include file='./paticka.tpl'}


V případě, že nastavíme tuto proměnnou na FALSE, však můžeme proměnnou použit jako pole následujícím způsobem:
hlavicka.php
$smarty->config_overwrite = 'false';

muj_config.conf
[Colours]
#barvicky
fC = #FF9900
fC = #00FF99
fC = #9900FF

index.php
<?php
require_once("./hlavicka.php");

$a[0] = '0';
$a[1] = '1';
$a[2] = '2';

$smarty->assign('ukazka', $a);
$smarty->display('index.tpl');
?>


index.tpl
{config_load file='muj_config.conf' section=Colours}
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>

{section name=a loop=$ukazka}
<span style="color:{cycle values=#fC#};">{$ukazka[a]}<br/>
{/section}

</p>
{include file='./paticka.tpl'}


Tento příklad by nám tedy měl vypsat každý z řádků jinou barvou. Rád bych upozornil, že pro zdárnou změnu je také třeba znovu uložit konfigurační soubor, ten se totiž jinak bude načítat z cache paměti Smarty a žádné změny v zobraní bychom se nedočkali.

Další možností jak editovat takovou proměnnou je změna přímo v konfiguračním souboru Config_File.class.php, konkrétně pak parametr funkce „Config_File“ → overwrite;
K takovéto editaci bych ovšem nepřistupoval, protože pokud byste např. Přecházeli na novou verzi, či jakkoliv jinak upravovali Smarty soubory, těžko zpětně dohledáte změnu.

Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
dere z IP 78.102.124.*** | 17.8.2009 08:49
gratuluji, srozumitelny popis konfiguráku !!


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel šest a deset