FiXeD Posted November 4, 2009 Report Share Posted November 4, 2009 (edited) Sveicināti esmu šeit jauniņais... Lieta sekojoša, es te cīnos ar templeitiem, jo apnika jūzot funkcijas :d Uztaisīju šādu klasi pašam dizainam HTML <html> <head> whatever what goes here... </head> <body> <div id="left">#leftside#</left> <div id="center">#content#</left> <div id="right">#rightside#</left> </body> </html> PHP Klase <?php class tmp { public $tmp; function load($filepath) { $this->tmp = file_get_contents($filepath); } function replace($var, $content) { $this->tmp = str_replace("#$var#", $content, $this->tmp); } function publish() { eval("?>".$this->tmp."<?"); } } ?> PHP Kods $tmp = new tmp; $tmp->load("template.html"); $tmp->replace("registered", $registered); $tmp->replace("title", $title); $tmp->replace("content", $content); $tmp->replace("leftside", $leftside); $tmp->replace("rigthtside", $rigthside); $tmp->replace("copyrights", $copyrights); $tmp->replace("time", $time); $tmp->publish(); un vēlos tagad uztaisīt klasi blokiem Bloka HTML <div class="block"> <div class="blocktitle">#blocktitle#</div> <div class="blockonline">#blockcontent#</div> </div> Bloka PHP <?php $title = "Whatever"; $content = "Smthing goes here"; ?> Biju uztaisījis klasi, bet man sanāca kautkāds mismatch un tagad nekādīgi nevaru saprast, kas īsti jādara...!! Kā man uzrakstīt klasi, lai visi bloki tiktu ņemti no datubāzes un iebāzti $leftside mainīgajā izmantojot šablona klasi?? Nu to db es uztaisīšu pats, bet varbūt kāds saprata, ko vēlos šeit panākt un ir ideja kā izlaižot info caur šablona klasi no php bloka uz mainīgo??!! Vizuāli sanāk šādi: bloks ar mainīgajiem -> Mainīgie tiek ievietoti šablonā -> šablona saturs + mainīgie no bloka -> Mainīgajā $leftside, kas ir galvenā šablona kreisā mala! Edited November 4, 2009 by FiXeD Quote Link to comment Share on other sites More sharing options...
marcis Posted November 4, 2009 Report Share Posted November 4, 2009 $tmp = new tmp; $tmp->load("template.html"); $tmp->replace("registered", $registered); $tmp->replace("title", $title); $tmp->replace("content", $content); $tmp->replace("leftside", $leftside); $tmp->replace("rigthtside", $rigthside); $tmp->replace("copyrights", $copyrights); $tmp->replace("time", $time); ob_start(); $tmp->publish(); $leftside = ob_get_contents(); ob_end_clean(); Man vienīgajam ir tāds uzskats, ka php pats par sevi ir templeitu sistēma? Quote Link to comment Share on other sites More sharing options...
FiXeD Posted November 4, 2009 Author Report Share Posted November 4, 2009 (edited) Nu varbut, tad vari ieteikt kaa to var labak izdarit vai kadu citu panemienu, metodi? Un par to uzskatu... varbut veel neesi saticis sava limena meistaru? :D neesmu vel sazubrijies par to ob_get_contents(), bet man vinu izmantot kaa...? no kurienes vinsjh nem tos contents un ka vinjus definet? Edited November 4, 2009 by FiXeD Quote Link to comment Share on other sites More sharing options...
codez Posted November 4, 2009 Report Share Posted November 4, 2009 (edited) <?PHP class Template { function load($XYZ__file,$XYZ__data){ extract($XYZ__data); ob_start(); require $XYZ__file; $XYZ__output = ob_get_contents(); ob_end_clean(); return $XYZ__output; } } Izmantoju: mans.tpl fails <div><?php echo $name; ?></div> <table> <?php foreach($messages as $message){ ?> <tr> <td><?php echo $message['from']; ?></td> <td><?php echo $message['title']; ?></td> </tr> <?php } ?> </table> izsauc: $messages=array( "0"=>array( "from"=>'Ilze', "title"=>'čau kā iet' ), "1"=>array( "from"=>'Zane', "title"=>'ko dari?' ) ); echo Template::load('mans.tpl',array('name'=>'Jānis','messages'=>$messages)); Edited November 4, 2009 by codez Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 4, 2009 Report Share Posted November 4, 2009 Man vienīgajam ir tāds uzskats, ka php pats par sevi ir templeitu sistēma? Nee Tevi ir pilniiga taisniiba, jo tas kods ir principaali pilniigi lieks, jo : <html> <head> whatever what goes here... </head> <body> <div id="left"><?php echo $leftside; ?></left> <div id="center"><?php echo $content; ?></left> <div id="right"><?php echo $rightside; ?></left> </body> </html> izdariis to pashu ko tas samudzinaatais un pilnigi nevajadzigais kods.. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted November 4, 2009 Report Share Posted November 4, 2009 Un par to uzskatu... varbut veel neesi saticis sava limena meistaru? :D Seems like you just got PWND. Quote Link to comment Share on other sites More sharing options...
FiXeD Posted November 4, 2009 Author Report Share Posted November 4, 2009 (edited) Opā pats te pamēģināju... pasakiet tā ir labi vai var vēl kā savādāk?! index.php <?php include("inc.php"); $title = "Sākums"; $content .= "whalds najs\n"; $content .= "whalds najs\n"; $content .= "whalds najs\n"; page($title, $content); ?> inc.php <?php function page($title, $content) { //Piemēram vēl kādi mainīgie ir norādīti templeitā $copyrights = "Lambada whatever..."; include("template.html"); } ?> template.html <html> <head> <title>WHATEVER :: <?php echo $title; ?></title> </head> <body> <div id="left"><?php echo $leftside; ?></left> <div id="center"><?php echo $content; ?></left> <div id="right"><?php echo $rightside; ?></left> <div id="copy"><?php echo $copyright; ?></left> <!-- Tas te no inc.php faila kur komentārs par citiem mainīgajiem --> </body> </html> P.S. - Kavacky Tev no to postu skaita, 50% vai vairāk, ir pilnīgi bezjēdzīgi spama komentāri? Edited November 4, 2009 by FiXeD Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 4, 2009 Report Share Posted November 4, 2009 (edited) es vislaik esmu pielietojis funkcijas ... piemēram... <?php function head($title) { include("head.html") } Kas tas par murgu ?? Prieks kam f-jas?? kaapec ne uzreiz vajadziigaja vietaa <?php //atrodam kaadu vidu jaincluudo $vidus='vidus.php'; ?> bla bla htmls <?php include ($vidus); ?> html turpinaas un nevajag domaat kautkaadu nto riteni par jaunu edit: un skuma var arii nodefineet teiksim virsrakstu .. ( teiksim ja samais nak no DB ) Un tajaa includojamaa php failaa tikai vinju izvadiit.. Edited November 4, 2009 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
FiXeD Posted November 4, 2009 Author Report Share Posted November 4, 2009 tik daudz es saprotu, bet vnk man tas webinjsh cms style... kā lai pasaka... funkcijas ir dēļ tiem debīlajiem sāna blokiem... ja es inklūdoju tikkai vidiņus ... Tu stādies priekšā 20 lapās rakstīt to headeri leftsaidu rightsaidu footeri ... tur tak debils var palikt... izmantoju vnk 1 funkciju, kas panem contentu iemet templeitaa un tur vel ka mainigos nodefineju abus saidus Quote Link to comment Share on other sites More sharing options...
Kavacky Posted November 4, 2009 Report Share Posted November 4, 2009 P.S. - Kavacky Tev no to postu skaita, 50% vai vairāk, ir pilnīgi bezjēdzīgi spama komentāri? Un kā tas attiecas uz joku par marcis; vai es būtu apgalvojis pretējo? Loģika iegūst datus $dati['menu'], $dati['klucis_X'], $dati['klucis_Y']. Templeiti savos klučos paņem pareizo X vai Y. Kontrolieris ielasa vajadzīgos loģikas apstrādes elementus un atbilstošos templeitus. Solved. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 4, 2009 Report Share Posted November 4, 2009 Tu stādies priekšā 20 lapās rakstīt to headeri leftsaidu rightsaidu footeri ... tur tak debils var palikt... 90% gadijumos lapai ir vairak vai mazak vienaads dizains visam lapaam .. Augsa apaksa Etc .. taatad var izmantot 1 index failu ... kur samie jau nodefineeti .. augsaa php dalja kas atlasa peec vajadziibas konkreto Vidu, menuu etc ... zemaak apaksaa Html dalja kur izvadi vajadziigo vidu, malu etc ... arii Footeri vari ievietot atsevikja faila ( ja nu katrai lapai vinsh ir savaadaks ) .. Jo 99% gadijumos tas template ir pilniigi lieka ... , Php pats ir labu labais templetu engins ... Quote Link to comment Share on other sites More sharing options...
FiXeD Posted November 4, 2009 Author Report Share Posted November 4, 2009 (edited) ja izmanto vienu index failu, tad jau jaizmanto switch... ?p=lapa un tik aiziet, bet mana gadijuma sanak katrs bloks nak no db(teoretiski no faila bet vnk db parbaude vai bloks ieslegts, izslegts un izvietojums) ... katrs vidinjsh nak no db... apsvēru domu uztaisīt blokus mazos kkādus paziņojumus text formā iekš db... tad centu ņemtu no db un tas būtu jāiebāž bloka izskatā... ehh... visi šie varianti uztaisa šausmīgu putru un nenormāli daudz jāparraksta... uzmetu kakaino funkciju ... 1 rindinja katrā lapā un vso... tik krāmē tālāk htmlus, php, javascriptus.... iedomajos jau vien index.php?p=forums&cat=3&forums=10&topic=13 omg mod_rewrite vajag... bet uz hosta lighthttpd ... 0_o Karoč apnika ... gribēju, ko jaunu nesanāca .. plinte krūmos un atpakaļ pie savām uberfunkcijām, kas kalpoja 1 gadu bez kļūdām un problēmām... :D vispār mby ir kādam links uz jēdzīgu class tutoriāli... izraku daudzus, bet nekā usefulīga.... Edited November 4, 2009 by FiXeD Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 4, 2009 Report Share Posted November 4, 2009 ja izmanto vienu index failu, tad jau jaizmanto switch... ?p=lapa un tik aiziet, bet mana gadijuma sanak katrs bloks nak no db(teoretiski no faila bet vnk db parbaude vai bloks ieslegts, izslegts un izvietojums) ... katrs vidinjsh nak no db... A kaada starpiiba no kurienes taa informaacija naak ?? Kaut Telepatiski... index failam sanak 2 pamat daljas kontroliris un HTML ( izvade) , lai viss ir smuki adaliits -- kontroliera dalja : 1. savacam datus no DB ( vai nu faila velju, vai pashu html .. vai tikai plain textu , nav buutiski ) 2. ierakstam to visu mainiigajaa -- Izvades dalja , izvadam mainiigo vajadiigaja vietaa ---- Tavs varjants : 1. Savacam datus 2. ierakstam mainigajaa 3. ielasam templetu 4. apstradajam to templeitu ( iekombinejam datus ieksh HTML ) --- Izvadam datus -- Neskjiet ka 3 un 4 solis sanaak lieks?? --------- Driizak jau tavaa gadijumaa sanaak ntaas reizes parrakstiit... Quote Link to comment Share on other sites More sharing options...
FiXeD Posted November 4, 2009 Author Report Share Posted November 4, 2009 (edited) labi pieņemsim, ka sapratu... index fails visas php darbibas iemetam visu $leftside, $content, $rightside mainigaja (+ man ir vel kadai 20 mainigie templeitaa) includojam html failu, kas izvada php, jo html failā ierakstijām, tur kur vajag <?php echo $content; ?> citas lapas fails buus? visas php darbibas iemetam visu $leftside, $content, $rightside mainigaja (+ man ir vel kadai 20 mainigie templeitaa) includojam html failu, kas izvada php, jo html failā ierakstijām, tur kur vajag <?php echo $content; ?> nesanak bik vairak parrakstit? mana gadijuma inc.php head() [ html headeris lidz kontentam ar visu leftside }; foot() { viss html footeris ieskaitot rightside }; index.php head(); php html js // viss contents foot(); Edited November 4, 2009 by FiXeD 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.