| Sistem templateov ? | ||
|---|---|---|
|
HeXeR
26. apr 2007 08:04:46
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#1
Kako najlažje narediti sistem templateov ? Tako kot je recimo phpBB, phpLD ... itd. da lahko delajo drugi template pa jih dajo v mapo pa dela ... kako bi to najlažje naredil s php ? Mislim po kakem principu bi naj delovalo ? Dokaj preprosta verzija bi bila da pač naredil file ki se includa pa je noter vsa oblika, spremenljivke pa v <? echo $neki; ?>, čeprav koliko sem gledal se to za template ne uporablja, večina je {neki} ... v čem je sploh razlika ? Če naredim tako ali drugače ? Ali naj uporabim čisto tretjo stvar ? Katero ? In pa kaj imajo radi designerji templatov ? First rule of business, protect your investment.
|
|
|
Vini
26. apr 2007 09:04:02
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
||
|
HeXeR
26. apr 2007 09:04:12
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#3
Ja sem pravkar googlal, pa sem naletel na tole ... med drugim ga uporablja tudi phpLD ... drugače pa sem nekje našel tole : In short, the point of template engines should be to separate your business logic from your presentation logic, not separate your PHP code from your HTML code. :D First rule of business, protect your investment.
|
|
|
celavi
5. jun 2007 21:06:44
Pridružen od: 5. jun 2007 37 objav 0 0 0 |
#4
To kar si napisal je osnovna ideja templatov. Tega se lepo drzi Savant ki med drugim ne kompajlira template v php, ker se kot jezik za template upurablja php. Lepo dela tudi v php5 z Exceptni edino za kompatibilnost E_STRICT rabis verzijo 3 nalozit. Meni osebno je ljubsi Smarty kljub temu da ga mnogi kritizirajo zaradi kompajliranja templatov in uporabo svojega jezika ki se ga mores naucit. Glede na to da je od leta 2001 ko so ga lansirali sama zasnova ostala vec ali manj enaka jim ni za zamerit. ;) Cakamo pa verzijo ki bo metala ven php5 exceptione. Kar se pa tice tvojih vprasanj pa si nametal kar nekaj zadev, ceprav ne vem tocno kaj zelis vedet. Izbira template sistem je odvisna od tebe. Ce ti to ne odgovarja in imas cas lahko vedno napises svojega ;) LP, AlesL |
|
|
HeXeR
5. jun 2007 22:06:50
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#5
Ja, prav zato sem želel svoj sistem, ker pri smarty recimo maš svojo sintakso, itd. ... če si naredim svojega, pa nikoli nebom mel problemov, ker bom na pamet vedo kje je kaj ... čeprav zadeva ni tako preprosta ko sem na začetku mislil :). First rule of business, protect your investment.
|
|
|
celavi
6. jun 2007 23:06:59
Pridružen od: 5. jun 2007 37 objav 0 0 0 |
#6
:) Navedel ti bom primer pre plugina. To je dolocena skripta, ki se izvede preden se poslje template v obdelavo Smarty parserju. Primeri takih filtrov so ce zelis npr odstraniti odvecne komentarje iz kode, popraviti slovnicne napake z Dictionarijem ... Ta primer plugina v kodi najde inline Javascript in z uporabo plugin registriramo ob inicializaciji smarty-ja: Kot vidimo (glej spodaj) je celoten inline Javasript obdan z custom Smarty tagom {jsMin}{/jsMin}. V kodi opazimo tudi tag {t}{/t} ki je bil registriran kot block funkcija ki prevede del znotraj taga (wraper je lahko razlicen: cvs, xml, Gettext) ... mogoce o tem vec kdaj drugic :) Vsi smarty tagi znotraj javascripta so obdani z dodatnima oklepajima {} ker s tem dolocimo pozneje v funkciji JsMin, katere dele kode naj smarty ne parsa. Ja sam Smarty ne prebavlja embendanega Javascripta in CSS-ja in mu je potrebno povedat eksplicitno kako pa kaj. Poglejmo sedaj funkcijo. Na kratko: Z regEx dobimo ven celotno vsebino ki je med {jsMin} tagom. Ce je znotraj se kaksen smarty tag insertamo literal in dobimo {/}literal{tag}{literal}, posljemo vsebino skozi Jsmin jo obogatimo z script tagom in vrnemo nazaj smartyju :) Template izgleda priblizno takole: } Smarty dobi: HTML source v browserju pa izgleda enako le da nima {literal} tagov. Velika vecina razvijalcev uporablja template sisteme ne zaradi tega da v php-ju nastavijo spremenljivko assign->misko = "wow super je tole" ampak da si predvsem olajsajo zadeve s tem da si postopoma pripravijo razne plugine, helperje, filtre ki jim potem z pridom uporabljajo! LP |
|
|
HeXeR
7. jun 2007 01:06:56
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#7
Mnjah, na koncu sem razmišlal da bi imel tako wordpress ... [HTML]... <div class="neki"><? out("meni"); ?> - tralala </div> ... bla bla[/HTML] ali kaj pač ... kličeš funkcijo, pa ti lepo izpiše, če bi delal z echo bi bilo še lepše, lahko kake malenkosti kaj v template popraviš ... čeprav to ravno ni rešitev da vse zapocaš ... First rule of business, protect your investment.
|
|
|
celavi
8. jun 2007 23:06:34
Pridružen od: 5. jun 2007 37 objav 0 0 0 |
#8
Ne poznam (se) wordpressov template sistem, ampak ce lahko sklepam po ostalih so vec ali manj zasnovani enako. To kar ti zelis ni nic drugo kot nek helper oziroma funkcija ki jo klices iz templata. Ali imas to reseno kot tag ali ne princip je isti. [HTML]
|
|
|
HeXeR
9. jun 2007 06:06:50
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#9
/wordpress/wp-content/themes/classic/header.php Takole zgleda glava recimo, samo temu nevem če bi lahko reko ravno template system, ker se samo php funkcije kličejo, cel template je tako naret, ni svojih tagov, tako recimo phpBB { in } in nevem zakaj komplicirati s tem ? Kaka je razlika če pustim <? ali pa zamenjam s { ? S par funkcijami maš to zelo hitro nareto, kličeš pa tako sem en post prej napisal. recimo ... First rule of business, protect your investment.
|
|