login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Template script

Offline zwobbel - 31/10/2005 10:48 (laatste wijziging 31/10/2005 11:14)
Avatar van zwobbelPHP gevorderde Ik ben aan het leren voor een template script te gebruiken en heb al 1 vraag.
Momenteel heb ik heel mijn layout in een tpl gestoken.
Maar ik zou het overzichtelijker vinden moesten mijn content html tabbelen en andere zaken ook appart in tpl zitten is dit mogelijk en zoja hoe pas ik het dan toe in mijn script?

Script:
  1. <?php
  2. include("template/class.TemplatePower.inc.php");
  3.  
  4. $tpl = new TemplatePower("template/index.tpl");
  5.  
  6.  
  7. $tpl->prepare();
  8.  
  9. $tpl->assign(array("Titel" => "Zwobbel.com | It's all about you and me!"
  10. ));
  11.  
  12. $tpl->newBlock("Content");
  13.  
  14. $tpl->assign(array("Content_koptekst" => "Content",
  15. "Content_tekst" => "Dit is mijn eerste nieuwe template test script!"
  16. ));
  17.  
  18.  
  19. $tpl->printToScreen();
  20. ?>

12 antwoorden

Gesponsorde links
Offline Thomas - 31/10/2005 13:23 (laatste wijziging 31/10/2005 13:25)
Avatar van Thomas Moderator Ik ben op dit moment een pagina-navigatie-systeem-tutorial (tis eigenlijk véél meer dan dat) aan het schrijven voor / over TemplatePower. Het zal echter nog wel even duren voordat deze af is.

Meestal heb je één hoofd-template, waarin je hele site in tabelvorm zit. Daarin include je (met $tpl->assignInclude()) weer andere templates die van inhoud kunnen variëren. Denk hierbij aan een menu en (met name) de content van een pagina van je site.

Je kunt met de methode assignInclude() dus al meer structuur aanbrengen in je pagina.
Offline zwobbel - 31/10/2005 14:31
Avatar van zwobbel PHP gevorderde aah oke dus je hebt als ik het goed begrijp.
1 hoofd bestand met heel je layout waarin je in die file met de functie$tpl->assignInclude() andere tpl files kunt include?

Laat me iets weten als je tutorial af is!
Offline Thomas - 31/10/2005 18:58
Avatar van Thomas Moderator Je hebt 1 hoofdtemplate die je "include" als je je TemplatePower object aanmaakt (dus met $tpl = new TemplatePower("je_hoofd_template.tpl");).

In dit template kun je weer andere templates "includen" door in je_hoofd_template.tpl het volgende te zetten:
  1. <!-- INCLUDE BLOCK : sub_template_X -->


En deze dan (voor $tpl->prepare() !!!) te includen met:
  1. $tpl->assignInclude("sub_template_X", "sub_template_X.tpl");


Als je wilt kan ik je wel een gezipt voorbeeldje sturen van dit principe, maar het staat ook wel duidelijk omschreven op de TemplatePower site.
Offline Rens - 31/10/2005 18:59
Avatar van Rens Gouden medaille

Crew algemeen
Staat ook bij de nota's op de tutorial "TemplateEngine: TemplatePower":
http://www.site...e=reacties
Offline Ultimatum - 31/10/2005 20:27
Avatar van Ultimatum PHP expert nu het tog over template power gaat, kan ik ook wel een vraag stellen 

Xenox heeft deze code in tutorial
index.php
  1. <?php
  2. include("class.TemplatePower.inc.php");
  3.  
  4. $tpl = new TemplatePower("index.tpl");
  5.  
  6. $tpl->prepare();
  7.  
  8. $tpl->assign(array("titel" => "TemplatePower",
  9. "persoon" => "XenoX"
  10. ));
  11.  
  12. $tpl->newBlock("rij");
  13.  
  14. $tpl->assign(array("id" => "1",
  15. "naam" => "Joël"
  16. ));
  17.  
  18. $tpl->newBlock("rij");
  19.  
  20. $tpl->assign(array("id" => "11",
  21. "naam" => "FangorN"
  22. ));
  23.  
  24. $tpl->newBlock("rij");
  25.  
  26. $tpl->assign(array("id" => "20",
  27. "naam" => "Wijnand"
  28. ));
  29.  
  30. $tpl->newBlock("rij");
  31.  
  32. $tpl->assign(array("id" => "25",
  33. "naam" => "XenoX"
  34. ));
  35.  
  36. $tpl->printToScreen();
  37. ?>


index.tpl
  1. <html>
  2.  
  3. <head>
  4. <title>{titel}</title>
  5. </head>
  6.  
  7. <body>
  8. <h1>Welkom {persoon}!</h1>
  9.  
  10. <!-- START BLOCK : rij -->
  11. {id} : {naam}
  12. <!-- END BLOCK : rij -->
  13. </body>
  14.  
  15. </html>


maar als ik nou de id en namen in een tabel wil laten zien, met een while loop dus (of wat het ook is een lus of whatever), waar doe ik dat dan in de index.php of index.tpl en hoe dan
Offline Thomas - 31/10/2005 20:45 (laatste wijziging 31/10/2005 20:46)
Avatar van Thomas Moderator Je PHP-code bepaalt wat je weergeeft, je template bepaalt hoe het wordt weergegeven. Maak dus een table in je template.

template:
  1. <table border="1" cellspacing="0" cellpadding="2">
  2. <tr>
  3. <td>id</td>
  4. <td>naam</td>
  5. </tr>
  6. <!-- START BLOCK : ITEM -->
  7. <tr>
  8. <td>{ITEM_ID}</td>
  9. <td>{ITEM_NAAM}</td>
  10. </tr>
  11. <!-- END BLOCK : ITEM -->
  12. </table>


php code:
  1. <?php
  2. $res = mysql_query("SELECT id, naam FROM whatever ORDER BY id");
  3.  
  4. if(mysql_num_rows($res)) {
  5. while($row = mysql_fetch_assoc($res)) {
  6. $tpl->newBlock("ITEM");
  7. $tpl->assign(array(
  8. "ITEM_ID" => $row['id'],
  9. "ITEM_NAAM" => $row['naam']
  10. ));
  11. }
  12. }
  13. $tpl->gotoBlock("_ROOT"); // of het bovenliggende blok waarin je bezig was - niet vergeten!
  14. ?>
Offline Ultimatum - 31/10/2005 21:00
Avatar van Ultimatum PHP expert ow zo, nu is het een stuk duidelijker, thanx ;)
Offline zwobbel - 01/11/2005 11:38 (laatste wijziging 01/11/2005 11:48)
Avatar van zwobbel PHP gevorderde Nog 1 vraagje

Hoe ga je te werk als je vb een contact pagina maakt.
Hoe moet je dan juist een tpl opmaken?
Juist het zelfde als anders en dat ook oproepen als een blok of?
Offline Thomas - 01/11/2005 12:52
Avatar van Thomas Moderator Hm? Er is toch niets "dynamisch" aan een contact-formulier? Deze kun je dus gewoon in een template zetten (en in je hoofd-template assignInclude()n), zoals je in een normale HTML-pagina zou doen.
Offline zwobbel - 01/11/2005 20:21
Avatar van zwobbel PHP gevorderde jawel toch het opvragen van gegevens die personen hebben ingevult en deze laten verzenden naar een email van jezelf.
Offline Fenrir - 01/11/2005 20:41
Avatar van Fenrir PHP expert Ja, maar FangorN bedoelt het formulier in HTML. Dus niet de functionaliteit erachter.
Offline Thomas - 01/11/2005 20:47
Avatar van Thomas Moderator In de action van je "platte" (HTML)form kun je toch verwijzen naar een pagina / script die je form verwerkt?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.266s