Philipp: Templates verschalteln

Beitrag lesen

Hallo Ihr!

Ich bleibe irgendwie hängen bei meinem Versuch Templates ineinander zu Verschachteln, solange nur ein Template ein anders lädt, geht es, aber sobald zwei geladen werden soll, geht es nicht mehr.

Kommentare im Source:

Erst die Zeile, die die Funktion aufruft:

if (isset($tmpl_to_load)) {
 $site_str = load_tmpl($str,$tmpl_to_load,$mysqldb,$mysqltable_tmpl);
 }

Wenn $tmpl_to_load vergeben ist und so ein Template ausgewählt wurde, soll die Funktion load_tmpl() geladen werde. Da die Templates in eine MySQL Tabelle liegen, müssen noch die MySQL-Daten übergeben werden.

In der Var $str ist der String drin, der bis jetzt zusammengesetzt wurde.

Nun die Funktion load_tmpl():
(Platzhalter für Templates sehen so aus: <&tmpl:TemplateNummer&>)
function load_tmpl ($tmpl_str,$tmpl_id,$mysqldb,$mysqltable_tmpl) {
 $sql    = "SELECT id,template,mysql FROM $mysqltable_tmpl WHERE id='$tmpl_id'";
 $result = mysql_db_query($mysqldb,$sql);
 while($row = mysql_fetch_array($result)) {
  $template = $row["template"];
  $mysql = $row["mysql"];
  }
 if ($mysql == 1) { // Wenn $mysql = 1 wird das Template aus MySQL geladen sonst aus Datei
  $tmpl_str = $tmpl_str.$template;
  while(eregi('<&tmpl:(.+)&>',$tmpl_str)) {
   $copy_tmpl_str = $tmpl_str;
   list($tmpl_str,$new_tmpl_str_end) = spliti ('<&tmpl:(.+)&>',$tmpl_str);
   $tmpl_str_end = $tmpl_str_end.$new_tmpl_str_end;
   $copy_tmpl_str = eregi_replace($tmpl_str.'<&tmpl:','',$copy_tmpl_str);
   $copy_tmpl_str = eregi_replace('&>'.$tmpl_str_end,'',$copy_tmpl_str);
   $new_tmpl_id = $copy_tmpl_str;
   if ($tmpl_id != $new_tmpl_id) { $tmpl_str = load_tmpl($tmpl_str,$new_tmpl_id,$mysqldb,$mysqltable_tmpl).$tmpl_str_end; } else { $tmpl_str = $tmpl_str." <nobr>- Runtime Error or wrong TMPL-ID by loding tmpl:$tmpl_id -</nobr> ".$tmpl_str_end; }
   }
  } else {
  $tmpl_str = $tmpl_str; // Template soll aus Datei geladen werden
  }
 return($tmpl_str);
 }

Weiss jemand, wo das Problem liegt?
Wäre für Hilfe sehr dankbar!

Gruss Philipp