phpbar.de logo

Mailinglisten-Archive

[php] Integrated Templates und Bloecke (lange mail)

[php] Integrated Templates und Bloecke (lange mail)

Nils Meyer php_(at)_phpcenter.de
Wed, 11 Jul 2001 18:25:14 +0200


Hallo,

Ich habe eine Templatedatei die ein paar Blckdefinitionen enthält,
vereinfacht so aufgebaut:
-----------------><8--------------------------------
<html>
<head>
  <title>{TITLE}</title>
</head>
<body>
<table>
  <tr>
     <td>
        <!-- BEGIN left -->
        <table><tr><td>{TITLE}</td></tr>
            <!-- BEGIN left_row -->
            <tr><td>{CONTENT}</td></tr>
            <!-- END left_row -->
        </table>
        <!-- END LEFT -->
     </td>
     {NAVI_BLOCK}
     {LOGIN_BLOCK}
     
     <td> <!-- [...] Ähnliche blockdefinition [..] </td>
     <td> <!-- [...] Ähnliche blockdefinition [..] </td>
  </tr>
</table>
<!-- [..] rest normaler Code -->
------------------------><8-------------------------

Dieses Template wird von diesem Code (vereinfach) verarbeitet:
-----------------------><8--------------------------
<?php
  include_once INCLUDE_DIR."IT.php"; //Integrated Templates Include

  $tpl=new IntegratedTemplate("./templates/");
  $tpl->loadTemplateFile("tpl.htm"); //Die templatedatei

  $navi[1]="home";
  // usw.

  $login="<form><input></form>"; //Stark verkürzt ;)

  $tpl->setCurrentBlock("left_row");
  $tpl->setVariable("CONTENT", $navi[1]); //später als schleife
  $tpl->parseCurrentBlock();

  $tpl->setCurrentBlock("left");
  $tpl->setVariable("TITLE", "navigation");
  $tpl->parseCurrentBlock();
  $navi_block=$tpl->get("left");
  $tpl->setCurrentBlock("__global__");
  $tpl->setVariable("NAVI_BLOCK", $navi_block);

  /* der gleiche Code nochmal für Login...
  * [...]
  */

  //[..] outputcompression usw.
  print $tpl->get();
?>
--------------------------><8-----------------------

Leider hat der Code nicht die erhoffte Wirkung. Der Code wird mehrmals
angezeigt, ich vermute das einmal die blockdefinition überschrieben
wird, und dann noch einmal die Variable gesetzt. Wie lässt sich das
vermeiden?

Am besten steige ich gleich auf die phplib templates um... :(

-- 
Mit freundlichen Grüßen,
 Nils Meyer                     mailto:meyer_(at)_wmc24.de



php::bar PHP Wiki   -   Listenarchive