lostz Posted July 28, 2011 Report Share Posted July 28, 2011 Sveiki, radās man doma pamēģināt iemācīties veidot savu templating sistēmu, sāku google rakāties "how to make your own .tpl" bet protams, google ir kaptēne acīm redzamība un saprot to, ka es vēlētos priekš kāda cms to, bet šajā gadījumā nē, un tapēc vēršos šeit, pie zinošākiem cilvēkiem ar jautājumu, kā izveidot parastu lapu ar template, ideja varētu būt tāda, -template(mape kurā glabājas iekšā apakš mape ar template nosaukumu) index ( te vienkārši un smuki visu parāda ) config ( definēts kādu template izmantojam no direktorijas (template) ja ir iespējas, varētu parādīt man ar pirkstu virzienu kur to meklēt. Paldies jau iepriekš. Quote Link to comment Share on other sites More sharing options...
briedis Posted July 28, 2011 Report Share Posted July 28, 2011 (edited) Atbilde ir vienkārša - just don't! Kāpēc? Tāpēc, ka php jau ir templeitu valoda, vēl viens abstrakcijas slānis ir vienkārši lieks. Tā vietā, labāk praktizē MVC izstrādes patternu, kur skati (jeb tie paši templeiti), ir parasti php faili, kuros ir maksimāli maz loģikas, kur notiek tīri mainīgo izvadīšana un cikli, kā piemēram: <html> <head> <title><?php echo $title;?></title> </head> </html> <body> <?php echo $content;?> <ul> <?php foreach($list as $item){ echo "<li>$item</li>"; } ?> </ul> </body> </html> Edited July 28, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 28, 2011 Report Share Posted July 28, 2011 PHP nav templeitu valoda, nolādēts! Quote Link to comment Share on other sites More sharing options...
rpr Posted July 28, 2011 Report Share Posted July 28, 2011 nodalīt html no php jau nu vajag jebkurā gadījumā un kā tu to sistēmu sauc jau ir cita runa. tas pats mvs frameworks galveno templeitu taču ņem no kaut kurienes. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 28, 2011 Report Share Posted July 28, 2011 MVC 'pattern`s'? Te nav tāda galvenā templeita. :) Quote Link to comment Share on other sites More sharing options...
Maris-S Posted July 28, 2011 Report Share Posted July 28, 2011 Nu visumā php jau nav templeitu valoda, bet nesen uzsāku sarunu par to vai vajag vai nevajag izmantot šablonus, mans viedoklis ka to nevajag. Šeit ir tā diskusija: http://php.lv/f/topic/19199-kapec-izmantot-template-engines/page__p__149346 Ja tomēr izdomā taisīt savu šablonu sistēmu, tad vari apskatīties jebkuru jau gatavu, kaut vai to pašu smarty, apskaties vienkārši kā tur sataisīts, mācību nolūkiem gan jau derēs. Quote Link to comment Share on other sites More sharing options...
codez Posted July 28, 2011 Report Share Posted July 28, 2011 Templeitu valoda ir valoda, kurā var raktīt templeitus, savukārt templeitu dzinējs ir dzinējs, kurš paņemot datus un templeitu apvieno tos output-ā. Vai tiešām PHP var rakstīt tempeleitus, vai tiešām PHP var apvienot datus un templeitu vienā output-ā? O, patiešām var!!!! Tātad, PHP ir templeitu valoda un PHP ir templeitu dzinējs, punkts. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 28, 2011 Report Share Posted July 28, 2011 C++ un Java arī tad jau ir templeitu valodas. Nevis programmēšanas. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted July 28, 2011 Report Share Posted July 28, 2011 C++ un Java arī tad jau ir templeitu valodas. Nevis programmēšanas. JAVA'aa ir JSP. C++ nav nekaadi templeiti - tur var savienot stringus. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 28, 2011 Report Share Posted July 28, 2011 Tas, ka valoda to piedāvā printf() funkciju jau nenozīmē, ka tagad to valodu sauksim par print-format valodu. Quote Link to comment Share on other sites More sharing options...
codez Posted July 28, 2011 Report Share Posted July 28, 2011 (edited) C++ un JAVA tu vari raktīt tikai kodu, tāpēc tas nebūs tepleitu dzinējs, savukārt, teorētiski tu vari uzrakstīt dzinēju arī tā, lai varētu darīt: hello, <?c++ cout<<name; ?> un tad tavs uzrakstītais būs c++ template dzinējs. Tā, kā PHP tā var darīt jau defaultā, tad defaultā PHP ir template dzinājs un attiecīgi template valoda. Edited July 28, 2011 by codez Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 28, 2011 Report Share Posted July 28, 2011 Skaidrs. Tagad saprotu. Quote Link to comment Share on other sites More sharing options...
lostz Posted July 28, 2011 Author Report Share Posted July 28, 2011 ak dievs, vienkārši pajautāju cilvēkiem a tie te reali lieki posto un neko nepasaka, Kā vienmēr milijons posti un tikai 1/2 jēdzīgi šajā gadījumā tikai briedim, pārējie rādija savu intelektu... (mans rezultāts) http://paste.php.lv/b250e46e8b101b531ffa24b6a07887c5?lang=html4strict // http://paste.php.lv/b7ea39a38d6fc01dec6256a3ebcb6f3f?lang=php protams šis nav vis koda gabals, bet still lūk uz kuru pusi es skatījos, bet te tik kādam labāk ko "gudru" sākt dzīt. ps. paldies briedi iemetu aci par mvc un hmvc, un tur blandoties pa rakstiem, atradu kā šo lācīti darbināt, lai izbēgtu lieku gudrinieku postus, es domāju varētu T.C. jo atbilde ir mācaties mvc Quote Link to comment Share on other sites More sharing options...
codez Posted July 28, 2011 Report Share Posted July 28, 2011 (edited) Ja spēj izsekod dialogam, tad briedis bija vienīgais, kas diskutēja ar tevi, pārējie diskutēja savā starpā un viņiem pilnīgi pie kājas, ko tu domā. Kas attiecas uz tavu mēģinājumu uztaisīt templeitu valodu, tas ir pilnīgi nevajadzīgs sviests. Paņem to visu vienā klases metodē, extract-o datus, ieslēdz outputa saglabāšanu buferī, inklūdo templeitu, kurš rakstīts normālā valodā (PHP) un dzīvo laimīgs. Veidot kaut ko tikai, lai <?= $name?> aizvietotu ar {name} ir bezjēdzīgi. Idejiski: class Template implements ArrayAccess{ function loadtemplate(){ extract($this->_data); ob_start(); require $this->_tpl; $___c___ = ob_get_contents(); ob_end_clean(); return $___c___; } public function offsetSet($k, $v) { $this->_data[$k] = $v; } } $tpl=new Template(); $tpl->_tpl='mans.tpl.php'; $tpl['name']='John'; $tpl['age']=35; un templeits: Hello, <?= $john; ?> (<?=$age;?>) Edited July 28, 2011 by codez Quote Link to comment Share on other sites More sharing options...
lostz Posted July 28, 2011 Author Report Share Posted July 28, 2011 nu jā codez, tavs piemērs ir vieglāks, bet ja pieņemam, kad tā daļa ko rādiju ir daļa no taisīta, frameworka, un ja gribu viņu vēlāk uztaisīt, lai no malas cilvēkiem viņa būtu tīri viegli saprotama, gribi teikt nav jēgas man tā censties? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.