Tom: Templates verschachteln

Beitrag lesen

Hello,

das ist fetter Stoff! Allein Deine beiden Verweise reichen mir, um den Ansatz mal zu verfolgen:

index.php

<?php

//Werte die in den Templates eingesetzt werden
$page['header'] = "Überschrift";
$page['content'] = "Inhalt";
$page['footer'] = "Fussnote";

$pattern = '#<!--{([A-Z]+):(.*)}-->#';
$template = file_get_contents('page.tpl');

function parse_callback ($match){
switch ($match[1]){
  case "TEMPLATE":
  global $pattern;
  return preg_replace_callback($pattern, "parse_callback", file_get_contents($match[2]);
  break;

case "STRING":
  global $page;
  return $page[$match[2]];
  break;
}
}

echo preg_replace_callback($pattern, "parse_callback", $template);
?>


>   
>   
> page.tpl  
> --------------------------------------------  
> <html>  
>  <body>  
>   <div id="header"><!--{STRING:headline}--></div>  
>   <div id="content"><!--{TEMPLATE:body.tpl}--></div>  
>   <div id="footer"><!--{STRING:footer}--></div>  
>  </body>  
> </html>  
>   
>   
> body.tpl  
> --------------------------------------------  
> <span class="body"><!--{STRING:content}--></span>  
>   
>   
> Das ist, wenn ich Dich richtig verstanden habe, der Ansatz mit rein passiven Templates. Ist das richtig?  
  
Das sieht schon gut aus.  
  
Das Denkproblem bei diesem Lösungsweg bleibt die Datenkopplung mit Listen.  
Man will dann ja ggf. ein Teiltemplate solange wiederholen, wie Daten vorhanden sind.  
Und bei langen Listen will man dann auch noch ein "Paging" haben...  
  
Das in passive Templates einzubauen, geht ggf. aber über die Rekursion, die Du ja schon abgebildet hast. Die müsste dann noch begrenzt werden durch einen entsprechenden Zähler...  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>