Smarty Template Engine 31.díl - Konfigurační soubory II.

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

Smarty Template Engine 31. díl – Konfigurační soubory II.


V tomto díle si ukážeme především praktické využití konfiguračních souborů, které můžeme chápat jako superglobální proměnné. Jejich přímé použítí v šablonách samotným kodérem se nastavuje pomocí funkce {config_load}.

Funkce {config_load}

K samotnému načtení konfiguračního souboru tedy slouží funkce {config_load}. Její parametry si uvedeme níže. Co je však důležité zdůraznit je, kam konfigurační soubor můžeme nahrát a jak případně změnit jeho umístění.

Direktiva config_dir

Pokud jste v našem seriálu o Smarty Template Engine postupovali od samého začátku, v kořenovém adresáři Vašeho testovacího webu byste měli mít uložený soubor hlavicka.php. Ten by pak měl obsahovat hned několik direktiv, nastavujících výchozí adresáře, používané Smarty. Mezi jinými jsme si pak nastavili i umístění konfiguračních souborů. A jako cílovou složku pak konkrétně adresář „config“.

Jeden z řádku by měl tedy vypadat takto:
hlavicka.php
$smarty->config_dir = './smarty/config';


defaultně pak:
hlavicka.php
$smarty->config_dir = './smarty/configs';

Direktivu vyplňovat samozřejmě nemusíte! Jako defaultní hodnota je zvoleno umístění do složky: „configs“.
V příkladu pak jde o volání funkce „config_dir“, třídy smarty, jejímž jediným parametrem je umístění vycházející z aktuální pozice .php skriptu, jež funkci volá!!
V rámci Vašeho serveru se z důvodu možného zneužití nedoporučuje ukládát soubor do složky, s oprávněním root.

{config_load}
Dostáváme se tedy k samotné funkci. Funkce je potřebna k nahrání konkrétního konfiguračního souboru ze složky s konfiguračními soubory

  • file – název konfiguračního souboru, jež si přejem použit, defaultně: ´´ (povinný)

  • section – použijeme v případě, že si přejeme použít i tzv. Sekci, uzavřenou v konfiguračním souboru do hranatých závorek. Defaultně se pak tedy použijí hodnoty nastavené z této části. defaultně: ´´ (nepovinný)

  • scope – jak má být capture zpřístupněna. Defaultní je hodnota „local“. Dále můžeme vyplnit – parent/global. Local umožňuje načtení pouze v lokální šabloně. Parent i v šablonách includovaných. Global pak ve všech, defaultně: 'local' (nepovinný)

  • global – nastavujeme, zda bude proměnná viditelná i pro rodiče, tedy podobně jako nastavení parametru scope == parent. V případě, že, je scope nastaveno na globální, je toto nastavení ignorováno, defaultně: 'false' (nepovinný)


do složky ./smarty/config/
config.php
# zakladni informace o strance patri do hlavicky
pageTitle = "Smarty Template Engine"
textJenTak = “TextJenTak“

#barva pozadi, barva pisma
[Colours]
pageTitle = 'Smarty Template Engine - Barvy'
bgc = #dedede
fc = #f90


index.tpl
{config_load file='muj_config.conf' section='Colours'}
{config_load file='muj_config.conf'}
{include file='./hlavicka.tpl' hlavicka=#pageTitle#}
<p style="color:{#fc#};background-color:{#bgc#};">
{#textJenTak#}
</p>
{include file='./paticka.tpl'}


Povšimněte si několika základních postupů, při použití konfiguračních souborů!!
Pokud chceme použít i proměnné mimo „globální“ konfigurační proměnné, musíme určit sekci, odkud se mají takové informace čerpat.
Poněvadž jsme jako první načetli sekci Colours a až jako druhou tu „globální“, title stránky se bude řídit poslední načtenou, tedy tou globální. Samotné použití v šabloně je pak už více méně jasné.
Toto rozestavení vychází z předpokladu, že používáme rozestavění webu z dřívějších dílů. Defaultně by ten samý příklad vypadal takto:

index.tpl
{config_load file='muj_config.conf'}
{config_load file='muj_config.conf' section='Colours'}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="cs" />
<title>
{#pageTitle#}
</title>
{popup_init src='javascripts/overlib/overlib.js'}
</head>
<body>
<div>
<p style="color:{#fc#};background-color:{#bgc#};">
{#textJenTak#}
</p>
</div>
</body>
</html>


Pouze jsme prohodili pořadí načítání konfiguračních souborů, teď se tedy použije proměnná „pageTitle“ ze sekce „Colours“
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

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