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.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro