|
Anonymous
Gost
|
 |
« poslato: Ponedeljak, 12. Mart 2001. 13:03:00 » |
|
Pokusavam da ugnezdim jedan dinamicki template u drugi, pa od svega toga da kreiram output, ali mi nikako ne ide. Znam da FastTemplates podrzavaju ugnezdjenje dinamickih template-ove, ali mi nikako to ne uspeva sa PHPLIB-ovim template sistemom. Ima li neko iskustva sa ovim i da li moze da mi posalje jedan kraci primer, ili bar link ka dokumentaciji o istom. Nista nisam nasao ni u dokumentaciji PHPLIB-a niti na sajtu PHPBuilder.
|
|
|
|
|
Sačuvana
|
|
|
|
|
acim
|
 |
« Odgovor #1 poslato: Ponedeljak, 12. Mart 2001. 19:20:00 » |
|
Nas sajt koristi ugnjezdene PHPLIB templejte, no nisam siguran da li je to izvedeno na najbolji nacin, obzirom na nedostatak dokumentacije, kako si i sam rekao. Evo primera:
$template = new Template( '../putanja_do_templejta' ); $template->set_file( array('main'=>'main.html', 'page'=>'page.html', 'subpage'=>"subpage.html") );
# Setovanje varijabli pomocnog templejta $template->set_var( array('STAGOD'=>'Neki tekst') );
# Parsiranje pomocnog templejta i setovanje pomocne varijable koja ce sadrzati parsiran pomocni templejt $template->parse( 'SUBPAGE', 'subpage' ); $subpage_html = $template->get_var( 'SUBPAGE' );
Zatim se ova vrednost upotrebi da bi se ubacila u neku templejt varijablu u glavnom templejtu koji kasnije isparsiras i ispises:
$template->parse( 'PAGE', 'page' ); $template->parse( 'OUTPUT', 'main' ); $template->p( 'OUTPUT' );
S time da glavni templejt main.html sadrzi varijablu {PAGE}. Ukoliko nadjes neki bolji nacin, posalji resenje na forum.
|
|
|
|
|
Sačuvana
|
Boban Aćimović, urednik linux.rs
|
|
|
|
Niko
Gost
|
 |
« Odgovor #2 poslato: Ponedeljak, 12. Mart 2001. 21:21:00 » |
|
FastTemplate upravo ne poseduje ugnjezdene dinamicke template, vec je moguce koristiti samo jedan nivo dinamickog deljenja. To je s jedne strane nedostatak, ali uvek je moguce naci resenje upotrebom eksternih fajlova, kao sto je Acim vec naveo. Nisam koristio PHPLib, ali pretpostavljam da bismo mogli da nadjemo u cemu je problem, ako posaljes konkretni primer koji nece da radi.
Sto se dinamickih templejta tice, oni su veoma elegantan nacin za resavanje slozenih stranica, posebno ako mogu da se ugnjezdavaju do mile volje. XTemplate je najbolji primer template engine-a koji tako radi, i naravno daje najsporije rezultate. Ja bih svakome preporucio da izbegava koriscenje dinamickih templejta ili ugnjezdavanje koje je Acim pokazao, ako se radi o slozenim stranicama koje treba brzo da se kreiraju. Ma koliko serveri bili brzi, treba uvek koristiti optimalnije metode. S obzirom da koriscenje dinamickih templejta podrazumeva formiranje templejt promenljive, to ce prilikom parsiranja maticnog templejta ta promenljiva biti uneta svuda gde se pojavljuje. Kada se zbog elegantnosti definise vise templejt fajlova koji hijerarhijski formiraju stranice, ugnjezdavaju se jedan u drugi (Acimov primer) dolazi do toga da par zadnjih parse poziva treba da radi sa velikim templejt promeljivama - nekad i vise KB, sto citav proces mnogo usporava. Uz to sve vreme stranica se krcka po memoriji racunara dok klijent ceka. Zbog toga je veoma bitno postici rad sa manjim templejt promenljivima i protocnost PHP skripta.
Resenje je izdeliti stranicu na vise delova (head, foot, body, list_head, list, list_foot) i stranicu formirati deo po deo i odmah slati korisniku. Tako se zadrzavaju dobre karakteristike koriscenja templejta a dobija se brzina izvrsavanja i protocnost.
|
|
|
|
|
Sačuvana
|
|
|
|
|
mire
Gost
|
 |
« Odgovor #3 poslato: Utorak, 20. Mart 2001. 16:43:00 » |
|
Povodom FastTemplate-a, zadnja verzija koju sam ja nasao je 1.1.0 iz 1999 godine? Zar nema nesto novije ?
BTW, da bi kod radio u PHP4 treba zameniti:
ereg("({[A-Z0-9_]+})", .... ili ereg_replace("{$key}", ....
sa: preg_match("/{[A-Z0-9_]+}/", ... ili preg_replace("/{$key}/", ...
|
|
|
|
|
Sačuvana
|
|
|
|
|
Niko
Gost
|
 |
« Odgovor #4 poslato: Utorak, 20. Mart 2001. 22:48:00 » |
|
Sta ce ti bilo sta novije, template-i nisu nista slozeno da bi se pravile novije verzije. Ja sam dodavao neke funkcije koje su mi trebale (recimo parsiranje dinamickih blokova tako da sledeci dodje na pocetak, a ne na kraj).
|
|
|
|
|
Sačuvana
|
|
|
|
|
coyote
Gost
|
 |
« Odgovor #5 poslato: Sreda, 21. Mart 2001. 18:39:00 » |
|
Pa, neki template-i koriste kesiranje. Ne secam se tacnog imena, samo znam da je potrebno instalirati PEAR da bi radili.
|
|
|
|
|
Sačuvana
|
|
|
|
|
mire
Gost
|
 |
« Odgovor #6 poslato: Sreda, 21. Mart 2001. 20:23:00 » |
|
OK, slazem se za template ali pogledaj phplib. Fajlovi imaju ekstenzije php3, sesije ne rade kako treba osim ako se stavi parametar allowcache=No, zadnja verzija je tamo iz juna 2000 godine, pominju zakljucavanje slogova u buducim verzijama. Ono sto mene interesuje je da li i koliko biblioteka pravi probleme u real world primeni (puno korisnika, sesije, autorizacija, dozvole, shopping cart-ovi itsl.) tj. mogu li da je bez razmisljanja upotrebim?
|
|
|
|
|
Sačuvana
|
|
|
|
|
zombie
Gost
|
 |
« Odgovor #7 poslato: Ponedeljak, 26. Mart 2001. 05:10:00 » |
|
Niks, ajde budi dobar, pa daj link za te Xtemplate ili kako vec 
|
|
|
|
|
Sačuvana
|
|
|
|
|
Nebojsa
Gost
|
 |
« Odgovor #8 poslato: Sreda, 28. Mart 2001. 23:29:00 » |
|
Sto se tice php 4 *obavezno* moras da ukljucis register_globals ili nema nista od rada. Imas na njihovom sajtu local4.inc i ostale fajlove da bi se koristio PHP 4 session management i trebalo bi da radi ok. BTW, za one koji koriste Win verziju PHP 4  ako nije podesen session temp path moze da dodje do pucanja PHP-a. Ima li neko ideju uopste kako da nateram PHPLib da radi sa register_globals off. Probao sam da "polovim" sve pozive na globalne varijable ali ne ide. Ne volim da mi se u "namespace" utrpavaju varijable koje nisam definisao.
|
|
|
|
|
Sačuvana
|
|
|
|
|