v3rb0 Posted March 27, 2006 Report Share Posted March 27, 2006 ja $page_cnt nav html tagi, tad pareizi dari. Link to comment Share on other sites More sharing options...
andrisp Posted March 27, 2006 Report Share Posted March 27, 2006 hmm.. man tieši ir .. kāpēc tas ir slikti ? Link to comment Share on other sites More sharing options...
Analgiins Posted March 27, 2006 Report Share Posted March 27, 2006 Es pats izmantoju pure-php-template.. gandriiz, jo vienīgais, kas ir vajadzīgs parsēt, ir include un block tagi. Nosacījumus un ciklus lai dara PHP, pats viņš tos ļoti labi prot: <?php if($kaut_kas == 1):?> iz vadam kaut ko <?php endif?> tā pat cikli: <?php while($is_something):?> tjip kaut kaut kādas tabulas rina, piem. <?php endwhile?> vienīgais, kā jau teicu, ir tikai inklud tagi, kas failā (lasīt templeitā) iekļau citu failu: <%include("designs/first_design")%> un block tagi <%block name="row"%> bloka saturs <%blockend%> līdz ar to parserim ir jāatrod 3 tagi: include, block un blockend. Sākumā atrodam visus include tagus, iekļaujaum visu, ko vajag, tad meklējam block tagus, saglabājam tos kaut kādā masīvā globālā (nu tā, lai pie viņiem pēc "name" var piekļūt) un pēc tam pašu templeiti izlaižam cauri eval. Nu apmērām tā! Kiš miš jau sanāk - ta kaut kadi <%include ..%> tagi, ta block tādi paši, tad php ar html sajaukumā - bet strādā 6 līdz 7 reizes ātrāk nekā kaut kāds smags templeitu endžīnis! Link to comment Share on other sites More sharing options...
andrisp Posted March 27, 2006 Report Share Posted March 27, 2006 ja $page_cnt nav html tagi, tad pareizi dari. Es gribētu vēlreiz pievērt v3rb0 uzmanību. Man $page_cnt satur html. Kāpēc tas ir slikti ? Link to comment Share on other sites More sharing options...
KAC Posted March 27, 2006 Report Share Posted March 27, 2006 lietoju smarty. nesuudzos, eerts, vienkaarshs un nav nemaz taaada bremze kaa kaadam skjiet. un vispaar, par kaadu aatrdarbiibu ir runa viduveejam saitam ar dazhiem cilv online? Link to comment Share on other sites More sharing options...
v3rb0 Posted March 27, 2006 Report Share Posted March 27, 2006 andrisp: templeita ideja ir atdalīt datus no noformējuma. html tagi drīzāk ir noformējums nevis dati. ja sataisi scriptā lielu html blāķi, kuru echo starp body tagiem, tad nevarēsi dabūt no scripta tikai datus ko izmantot lai taisīt printer friendly versiju, pdf, exceli, csv utt. Link to comment Share on other sites More sharing options...
andrisp Posted March 27, 2006 Report Share Posted March 27, 2006 To es saprotu. Mans piemērs bija laikam pārāk triviāls. parasti man ir tā ka template failā tiek inkludotas arī citas lietas, un tas $page_cnt parasti satur tikai kautkādus <p><h><a><div> tagus un varbūt kādu tabuliņu. Reāli tad template fails izskatās, piemēram, šāds: <html> <head> <title><?php echo $page_name ?></title> </head> <body> <div><?php require('templ/head.php'); ?></div> <div><?php require('templ/menu.php'); ?></div> <div><?php echo $page_cnt; ?></div> <div><?php require('templ/foot.php'); ?></div> </body> </html> Arī šis, protams, ir triviāls piemērs (pseido-templeits), bet apmēram tā es taisu. Zinu, ka tas nav labākais veids (bet nezinu kā ir labāk). Īstenībā es nemaz nevaru iedomāties kā var panākt pilnīgu html atdali no php koda. Link to comment Share on other sites More sharing options...
v3rb0 Posted March 27, 2006 Report Share Posted March 27, 2006 a dari šitā lapa.php <?php $dati = array(); $dati['title'] = 'manas lapas title'; $dati['texts'] = 'texts'; $dati['kaut_kads_saraksts'] = array(1,2,3,4,5,6,7..); require('template.php'); ?> un template.php <html> <head><title><?php echo $dati['title'];?></title></head> <body> <p><?php echo $dati['texts'];?></p> <?php foreach($dati['kaut_kads_saraksts'] as $item) : ?> <?php echo $item?><br /> <?php endforeach?> </body> </html> Link to comment Share on other sites More sharing options...
Recommended Posts