login  Naam:   Wachtwoord: 
Registreer je!
 Forum

opgelost[Template]Werkt niet

Offline DenMette - 19/07/2006 09:15 (laatste wijziging 19/07/2006 13:53)
Avatar van DenMettePHP gevorderde http://www.plaatscode.be/1400/ -> index.tpl
http://www.plaatscode.be/1401/ -> index.php

HEt includescript werkt niet als ik een variable er wil insteken.
hoe moet ik dat doen

  1. <?php
  2. include "./inc/class.TemplatePower.inc.php";
  3. $tpl = new TemplatePower( "./tpl/index.tpl" );
  4.  
  5. $tpl->assignInclude( "pag", "./home.php" ); // Moest hier staan en niet benenden
  6.  
  7. $tpl->prepare();
  8. $map = "http://mette.zoef-design.be/img/dagen/";
  9. switch(date('w', time())){
  10. case 0: $dagFoto = '<img src="'.$map.'0.gif" class="rand" />'; break;
  11. case 1: $dagFoto = '<img src="'.$map.'1.gif" class="rand" />'; break;
  12. case 2: $dagFoto = '<img src="'.$map.'2.gif" class="rand" />'; break;
  13. case 3: $dagFoto = '<img src="'.$map.'3.gif" class="rand" />'; break;
  14. case 4: $dagFoto = '<img src="'.$map.'4.gif" class="rand" />'; break;
  15. case 5: $dagFoto = '<img src="'.$map.'5.gif" class="rand" />'; break;
  16. case 6: $dagFoto = '<img src="'.$map.'6.gif" class="rand" />'; break;
  17. }
  18. $tpl->assign(array("foto" => $dagFoto,
  19. "bfoto" => "<img src=\"genmenu.php?imgTXT=".$_GET['pag']."\" class=\"rand\" />",
  20. "css" => "http://mette.zoef-design.be/layout.css",
  21. "sitenaam" => "Mette.Zoef-Design.Be"));
  22.  
  23. $tpl->printToScreen();
  24. ?>

8 antwoorden

Gesponsorde links
Offline Thomas - 19/07/2006 10:19 (laatste wijziging 19/07/2006 10:20)
Avatar van Thomas Moderator De constructie
  1. <!-- INCLUDESCRIPT BLOCK : {pag} -->

zal niet werken.

Je mag daar geen speciale tekens gebruiken.

Waarom je scripts wilt includen is mij ook niet geheel duidelijk? Om een scheiding tussen code en layout te behouden kun je beter een template gebruiken / includen dan een lap code.

Je hebt trouwens geen template-variabele nodig om een variabele template / stuk code te includen - je kunt een alias gebruiken:

template:
  1. <!-- INCLUDESCRIPT BLOCK : whatever -->


code:
  1. $tpl->assignInclude( "whatever", "./code.php" );


Op die manier kun je in je PHP-code (en de URL) bepalen welke template / stuk code je wilt laden.

Lees de manual nog maar eens door.
Offline DenMette - 19/07/2006 13:16
Avatar van DenMette PHP gevorderde werkt ook niet heb
<!-- INCLUDESCRIPT BLOCK : {pag} -->
Veranderd in
<!-- INCLUDESCRIPT BLOCK : pag -->

En de php code veranderd in

  1. <?php
  2. include "./inc/class.TemplatePower.inc.php";
  3. $tpl = new TemplatePower( "./tpl/index.tpl" );
  4. $tpl->prepare();
  5.  
  6. $map = "http://mette.zoef-design.be/img/dagen/";
  7. switch(date('w', time())){
  8. case 0: $dagFoto = '<img src="'.$map.'0.gif" class="rand" />'; break;
  9. case 1: $dagFoto = '<img src="'.$map.'1.gif" class="rand" />'; break;
  10. case 2: $dagFoto = '<img src="'.$map.'2.gif" class="rand" />'; break;
  11. case 3: $dagFoto = '<img src="'.$map.'3.gif" class="rand" />'; break;
  12. case 4: $dagFoto = '<img src="'.$map.'4.gif" class="rand" />'; break;
  13. case 5: $dagFoto = '<img src="'.$map.'5.gif" class="rand" />'; break;
  14. case 6: $dagFoto = '<img src="'.$map.'6.gif" class="rand" />'; break;
  15. }
  16. $tpl->assign(array("foto" => $dagFoto,
  17. "css" => "http://mette.zoef-design.be/layout.css",
  18. "sitenaam" => "Mette.Zoef-Design.Be"));
  19. $tpl->assignInclude("pag", "./home.php");
  20.  
  21. $tpl->printToScreen();
  22. ?>
Offline Thomas - 19/07/2006 13:50 (laatste wijziging 19/07/2006 13:52)
Avatar van Thomas Moderator Euh, je kunt ook niets assign-includen nadat je je template hebt geprepared...

De volgorde is:
1. maak template-object, geef aan wat de hoofdtemplate is. Hierin kunnen weer sub-templates zitten middels "placeholders" voor deze templates.
2. definieer alle "placeholders", d.w.z. geeft met behulp van assignInclude() aan welke template bij welke placeholder hoort.
3. prepare() de template
4. Hier mag je blokken gaan maken en templatevariabelen in gaan vullen
5. Afdrukken naar variabele of bestand

prepare() geeft dus de scheiding aan tussen het definiëren van welke templates je gebruikt en het vullen van deze templates.

EDIT: De code die hierboven staat kan wel een stukje korter...
Offline DenMette - 19/07/2006 13:53 (laatste wijziging 19/07/2006 13:53)
Avatar van DenMette PHP gevorderde ok bedankt voor de extra informatie

hoe dan
Offline Thomas - 19/07/2006 13:56
Avatar van Thomas Moderator Daar zou ik me pas zorgen over gaan maken nadat je het initialiseren en het vullen van je templates in de goede volgorde hebt gezet.
Offline DenMette - 19/07/2006 13:57
Avatar van DenMette PHP gevorderde in het begin staat dus wel de juiste oploosing hoor FangorN
Offline Thomas - 19/07/2006 14:00 (laatste wijziging 19/07/2006 14:01)
Avatar van Thomas Moderator
  1. $map = "http://mette.zoef-design.be/img/dagen/";
  2. switch(date('w', time())){
  3. case 0: $dagFoto = '<img src="'.$map.'0.gif" class="rand" />'; break;
  4. case 1: $dagFoto = '<img src="'.$map.'1.gif" class="rand" />'; break;
  5. case 2: $dagFoto = '<img src="'.$map.'2.gif" class="rand" />'; break;
  6. case 3: $dagFoto = '<img src="'.$map.'3.gif" class="rand" />'; break;
  7. case 4: $dagFoto = '<img src="'.$map.'4.gif" class="rand" />'; break;
  8. case 5: $dagFoto = '<img src="'.$map.'5.gif" class="rand" />'; break;
  9. case 6: $dagFoto = '<img src="'.$map.'6.gif" class="rand" />'; break;
  10. }


-->

  1. $dagFoto = '<img src="img/dagen/'.date("w").'.gif" class="rand" />';


Verder is het hebben van HTML-code in je PHP-code een Slechte Zaak. Eigenlijk hoef je alleen maar date("w") door te geven aan je template, omdat de rest toch niet verandert.
Offline DenMette - 19/07/2006 14:16
Avatar van DenMette PHP gevorderde aa dank u ik had het nog nioet gezien danku
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.264s