koristio sam par puta smarti, ali mi se ucinio preglomaznim, istina, koristio sam ga za manje projekte, ali opet... cilj jednog template sistema je da razdvoji program i dizajn. ok, kod smartija ima .php i .tpl fajl. ali u tpl fajlu ima if-ova, foreach-ova i ostalih programerskih drangulija.
kod ovog, u tpl fajlove se smesta samo "{#" i "#}" koji oznacavaju pocetak i kraj mesta gde se ubacuje promenljiva. izmedju moze ici bilo sta, ne uzima se u obzir.
u php skriptu se naravno napravi nova instanca, u tpl_file_array se ubaci niz tpl fajlova koje zelimo da prikazemo. u vars_to_insert ubacimo niz promenljivih koje treba ubaciti u tpl fajl(ove).
promenljive ubacujem na sledeci nacin: u tpl fajlu nadjem prvi {# #} blok, pa ubacim u njega prvu promenljivu iz niza vars_to_insert, pa nadjem drugi {# #} blok, pa u njega drugu promenljivu iz niza i tako dalje. malo je gadno resenja al... e da. nigde u skriptu nema reg-exp-a.
aj primer, mozda nisam najvestiji na recima :D
index.php
<?php
require_once('yatc.php');
$y = new YATC();
$y->tpl_file_array=array('tpl/head.tpl','tpl/index.tpl');
$y->vars_to_insert = array("Pozdravna poruka","Robert","Basic",date('d.m.Y'));
$y->show();
?>
head.tpl:
<html><head><title>{# naslov #}</title></head>
index.tpl:
<body><p>Zdravo {# ime #} {# prezime #}.
Danas je {# datum #}, kako si danas?</p></body></html>
pokretanjem index.php se dobija:
<html><head><title>Pozdravna poruka</title></head><body><p>Zdravo Robert Basic.
Danas je 14.01.2008, kako si danas?</p></body></html>
Najvise racuna treba voditi da se broj mesta za promenljive i broj promenljivih slazu i da promenljive u niz ubacejmo onim redom kojim treba da se ispisuju.
Mislim da je bolje da se u php skriptu, recimo izvuku podaci iz baze, formatiraju se sa html-om, to sve stavi u jednu ili vise promenljivih i onda se ta promenljiva prosledi tpl fajlu, jer je lakse programeru da podatke ubaci u html tagove, nego da dizajner ili programer petljaju sa foreach-cudima u tpl fajlu. dizajner, recimo, u tpl fajlu, u komentaru napise kako je smislio da se ispisuju neki podaci, programer otvori tpl fajl i na osnovu tog komentara formatira podatke.
*bicu van grada 1 dan, tako da cu kasniti sa eventualnim odgovorima :)