eT` Posted February 11, 2012 Report Share Posted February 11, 2012 Sveiki, Ja man smarty config failā ( \www\lapa\smarty\configs\ ) ir izveidots config fails, kā viņu var uztaisīt,l ia inklūdojas katrā lapā automātiski? Pašlaik ir sistēma page.tpl -> include header.tpl header.tpl -> include config.conf un šādi nestrādā. Gribu conf failā nodefinēt globālos mainīgos, lai nav katru reizi jāpadod smarty objekta izveidošanas laikā. Quote Link to comment Share on other sites More sharing options...
briedis Posted February 11, 2012 Report Share Posted February 11, 2012 Sāc ar to, ka nelieto smarty :D Otrkārt, ja tev ir normāla mvc struktūra, tad tu vari kaut kādā base kontrolierī katru reizi automātiski padot to konfigu kaut kādam globālam smarty objektam. Quote Link to comment Share on other sites More sharing options...
eT` Posted February 11, 2012 Author Report Share Posted February 11, 2012 Kādu templeitu sistēmu tu iesaki? Quote Link to comment Share on other sites More sharing options...
briedis Posted February 11, 2012 Report Share Posted February 11, 2012 (edited) Nekādu. Kas vainas pašam php? Izmantojot alternatīvo sintaksi vispār smuki: <strong><?=$mainigais;?></strong> <? if($kautkas): ?> <div> Teksts </div> <? endif; ?> <ul> <? foreach($array as $val): ?> <li><?=$val['item'];?></li> <? endforeach; ?> </ul> Galvenais nekrīti kārdinājumā darīt sarežģītākas lietas pašos templeitos, bet gan dari tikai tādas triviālas lietas kā izdrukā sarakstus, lieto if'us, utt. Aprēķinus, dažādus citus loģikas darbus veic kontrolierī. Edited February 11, 2012 by briedis Quote Link to comment Share on other sites More sharing options...
codez Posted February 11, 2012 Report Share Posted February 11, 2012 (edited) lūk tev būs vienkārša funkcija, kas māk ielādēt php failu kā templeitu: $_name - faila nosaukums $_data - masīvs ar mainīgajiem, kurus padot templeitam function load($_name,$_data=array()){ extract($_data); ob_start(); require $_name; $c = ob_get_contents(); ob_end_clean(); return $c; } //lietoshana: load('index.tpl',array( 'name'=>'john', 'title'=>'coooollll' )); //templeitā savukārt: <div><?php echo $name; ?></div> <div><?php echo $title; ?></div> Edited February 11, 2012 by codez Quote Link to comment Share on other sites More sharing options...
eT` Posted February 12, 2012 Author Report Share Posted February 12, 2012 (edited) Nestrādā man tava f-ja ( bet erroru arī nemet ) //initialize.php defined('TEMPLATE_PATH') ? null : define('TEMPLATE_PATH',SITE_ROOT.DS.'public'.DS.'templates'); require_once(LIB_PATH.DS.'template.php'); //template.php class Template { public function __construct($_name,$_data=array()) { if(file_exists(TEMPLATE_PATH.DS.$_name)) { extract($_data); ob_start(); require(TEMPLATE_PATH.DS.$_name); $applied_template = ob_get_contents(); ob_end_clean(); return $applied_template; } else { $session->message("Template {$_name} not found!"); return false; } } } //index.php ( kontrolieris ) require_once('../includes/initialize.php'); $template = new Template('index.php'); //index.php ( view's ) include_once(TEMPLATE_PATH.DS."header.php"); ?> <ul id="menu"> <li><a href="list_photo.php">Skatīt bildes</a></li> </ul> <?php include_once(TEMPLATE_PATH.DS."footer.php"); ?> Edited February 12, 2012 by eT` Quote Link to comment Share on other sites More sharing options...
eT` Posted February 12, 2012 Author Report Share Posted February 12, 2012 (edited) Šāda sistēma man strādā. Template klase - http://paste.php.lv/...80aae7?lang=php Izsaukšana kontrolierī - http://paste.php.lv/...0f85eb?lang=php Bet nesaprotu vienu lietu. Viņš saglabā cache, bet katru reizi to iztīra. Kāda jēga, tad ir viņā saglabāt, ja pēc katra refresha tāpat iztīra. Vai tur jāizveido metode, kas pārbauda cache faila saturu, un ja sakrīt, tad netīra cache, bet ja nesakrīt, tad iztīra un saglabā jaunu failu. Edited February 12, 2012 by eT` 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.