Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuţii   




Cartea de oaspeţi   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, Decembrie 2003
SOLUŢII PENTRU PROGRAMATORII ŞI DESIGNERII WEB

Smarty - procesor/compilator PHP de Şabloane

Elena Rogojină, Andrei Băutu

Smarty este un procesor de şabloane pentru PHP care oferă un grad ridicat de separare a prezentării de logica unei aplicaţii web.

Acest lucru e important în proiecte de dimensiuni medii şi mari, în care sunt implicate mai multe persoane. Smarty este pe lângă un procesor de şabloane, un compilator, şi o unealtă de cooperare între designeri web şi programatorii PHP. Folosind Smarty, designerii produc fişiere şablon (template), formate din text static (ex. taguri HTML, CSS) şi expresii Smarty.

Smarty pentru designeri

Un şablon Smarty este asemănător cu un fişier HTML static. În general, fişierele şablon conţin în denumire secvenţa ".tpl" sunt salvate în acelaşi director. La prima invocare a unui şablon, Smarty converteşte fişierul şablon în script PHP, procedeu numit compilare de şabloane. La invocări succesive, scriptul PHP rezultat este doar inclus.

În interiorul unui şablon Smarty se pot observa unele particularităţi şi anume prezenţa expresiilor Smarty. Sa luăm exemplul următor:

<!-- index.tpl.html -->
   {include file="antet.tpl.html"}
   <body> 
   <h1>Bine ai venit, {$nume}</h1> 
   </body> 
   {include file="subsol.tpl.html"} 

Expresiile conţinute între delimitatorii {şi} sunt expresii Smarty. Variabilele care provin din codul PHP şi care trebuie folosite de designeri se identifică prin expresii de tipul {$nume_variabilă}. Astfel, în porţiunea de cod de mai sus, se afişează variabila $nume. Expresia {include file=" <nume_fisier>"} permite imbricarea fişierelor şablon în vederea reutilizării acestora.

Smarty permite folosirea instrucţiunilor de control al fluxului (if, section, foreach) cu următoarele sintaxe (simplificate):

{if <conditie> } 
cod html {elseif <conditie> } cod html {else} cod html {/if} {section loop=$tablou name="index"} cod html {sectionelse} cod html {/section} {foreach from=$tablou item="element"} cod html {foreachelse} cod html {/foreach}

Presupunem că $studenti este un tablou cu numele şi notele unor studenţi la un examen. Pentru afişarea acestuia putem folosi următorul şablon:

<!-- rezultate.tpl.html -->
{foreach item="student" from=$studenti}
<li 
{if $student.nota lt 5}
style="color: green" {else} style="color: red" {/if}
>{$student.nume}&nbsp;{$student.nota} 
</li> 
{foreachelse} Nu exista nici un student.
{/foreach} 

Smarty pentru programatori

Avantajul principal pe care îl oferă Smarty programatorilor PHP este separarea funcţionalităţii aplicaţiei de interfaţa cu utilizatorul, adică a codului PHP de tagurile HTML. Astfel acestea pot evolua independent una faţă de cealaltă. Pentru a folosi Smarty codul PHP trebuie să respecte anumite condiţii. Mai întâi trebuie inclus fişierul "Smarty.class.php" şi apoi instanţiat un obiect Smarty. Asignarea unei variabile (care va fi folosită de şablon) se face apelând metoda assign cu o pereche nume-valoare sau cu un tablou. În final, pentru a procesa şi afişa şablonul se apelează metoda display. Şablonul index.tpl.html poate fi afişat folosind următorul script:

<?php
require "Smarty.class.php";
$smarty = new Smarty;
   // instantiem un obiect
$smarty->assign("nume", "Popescu");
   // asignam nume="Popescu"
$smarty->display("index.tpl.html");
   // afisam rezultatul
?>

Şablonul rezultate.tpl.html poate fi afişat folosind următorul script:

<?php
require "Smarty.class.php";
$ rezultate_examen = array(
array("nume"=>"Matel Emilia", "nota"=>4),
array("nume"=>"Popa Ioana Maria", "nota"=>10),
array("nume"=>"Boni Danut Stefan", "nota"=>10)); 
$smarty = new Smarty; 
$smarty->assign("studenti", $rezultate_examen);
$smarty->display("rezultate.tpl.html");
?> 

Mai multe informaţii referitoare la Smarty pot fi găsite la următoarele adrese:

smarty.php.net
smarty.incutio.com
webmasterbase.com/article/812
www.phpinsider.com/benchmarks_phemplate


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro