napravio sam neki templating klasu. cilj je vise vezbanje oop-a nego da napravim neku klasu reda smartija. svestan sam da ima mali milion ovakvih klasa i da ce ih biti jos toliko. kod nije najbolji po performansama, ali za pocetak je ok.
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 :)











YATC :: Yet Another Templating Class, by me
Re: YATC :: Yet Another Templating Class, by me