Author Topic: Variables Include durch Schleife  (Read 1277 times)

0 Members and 1 Guest are viewing this topic.

Crash

  • Guest
Variables Include durch Schleife
on: Tue, 16. January 2007 - 13:06:54
Ist sowas möglich?

Code: [Select]
array(
  array(datei => foo.tmpl.html),
  array(datei => bar.tmpl.html),
)

Und dann im Template:
Code: [Select]
<TMPL_LOOP NAME=dateien>
<TMPL_INCLUDE NAME={var:datei}>
</TMPL_LOOP>

Oder sollte ich aus dem Array jeweils ein neues Template erzeugen?

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Variables Include durch Schleife
Reply #1 on: Tue, 16. January 2007 - 13:30:20
Ich habe es nie getestet, aber ich glaube nicht, das diese Verschachtelung funktioniert.

Templates sind etwas Statisches. Die Dynamik, die Du möchtest muss mit PHP realisiert werden. Zum Beispiel wäre denkbar eine (oder mehrere) Template-Variable denkbar, die den ganzen Inhalt enthält.

{tmpl_var name=ganzer_inhalt}

steht im Template und wird dann über PHP aus Datenbank und XML zusammengestrickt. In PHP ist es ja möglich, ganze BLOBs in einer Variablen zu speichern und auszugeben.

Gruß
Claus

Crash

  • Guest
Re: Variables Include durch Schleife
Reply #2 on: Tue, 16. January 2007 - 13:51:17
Habs so gelöst:
Code: [Select]
$right = array(
  foo.tmpl.html,
  bar..tmpl.html,
);

$right_parse = ;
foreach ($right as $datei) {
  $temp_tmpl = new vlibTemplate(
    $datei,
    array(
      TEMPLATE_DIR => removeDoubleSlashes($_SERVER[DOCUMENT_ROOT].DOCROOT.inc/tmpl/),
      TIME_PARSE => 1,
      STRICT => 1,
    )
  );
  $temp_tmpl->setVar($tmpl->getVars());
  $right_parse .= $temp_tmpl->grab();
}
$tmpl->setVar(right, $right_parse);

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Variables Include durch Schleife
Reply #3 on: Tue, 16. January 2007 - 14:34:38
Hut ab! Coole Lösung!

Gruß
Claus

Crash

  • Guest
Re: Variables Include durch Schleife
Reply #4 on: Tue, 16. January 2007 - 15:03:47
Danke! Das war eigentlich der logische Schritt aus der Problemstellung. ;)