Template System Schleifen

Laut Dokumentation kannst du via:
(PHP) index.php
PHP:
$tpl->assign( "time",          $date("H:i") );

(HTML) templates/index.tpl
HTML:
{$time}

... ersetzen.

Wenn du die Ausgabe einer Schleife nun als "Parameter" an templates/index.tpl übergeben willst, so verwende so etwas Ähnliches:

(PHP) index.php
PHP:
$ausgabePlatzhalter='';
for($a=0;$a<5;$a++){
    $ausgabePlatzhalter .= $a;
}
$tpl->assign( "platzhalter",          $ausgabePlatzhalter);

(HTML) templates/index.tpl
HTML:
{$platzhalter}
 
okay das verstehe ich...

aber wenn ich nun eine ganze Tabelle für jede DB Zeile ausgeben will?

Wie übergebe ich das ?

Ich hätte jetzt gedacht, ich habe ein extra Template was dann in einer Schleife x-mal ausgegeben wird ?!
 
Dann musst du dein Template-Script erweiter, Die von dir verlinkte Seite ist nur eine Einleitung in das Thema, aber kein fertiges Templatesystem.
 
Ich programiere dir keines. Beginn mal und komm mit konkreten Fragen.

Grundsätzlich:
In PHP ein Array mit den Daten.
Im Template ein Tag und end-Tag für die Schliefe

Also irgend was in diese Richtung:

Datenstruktur
PHP:
$data=array(array('id'=>1, 'name'=>'test1'), array('id'=>2, 'name'=>'test2'));
Template
Code:
{loop list=$data node='row'}
  {$row['id']} {$row['name']}
{/loop}
 
ok das habe ich ja schon verstanden ...

aber was ist wenn ich zum Beispiel ein bootstrap template habe... und ich sowas habe:

Code:
<div class="row">
<div class="col-md-4">($name)</div>
<div class="col-md-4">($name)</div>
<div class="col-md-4">($name)</div>
</div>

wie sage ich ihm jetzt das wenn er 3 Namen nebeneinander ausgegeben hat, nen </div> und nen <div class="row"> machen soll ?
 
Keine Ahnung. Ich kenne das Templatesystem nicht (und hab keine Lust mich einzulesen) und weiss auch nicht, wie deine Daten aufgebaut sind.
Zudem habe ich keine Lust weiter Sachen zu schreiben um dann zu lesen, dass du das schon weisst aber so schreibst, als ob du genau 0 Ahnung hast.

Naja, soviel will ich dir helfen. In dienem Template, das du soeben gepostet hast, sind es ja nur 3 Einträge im row-div. Also ist ja klar, dass da nur 3 Einträge reinkommen. Aber das weisst du ja auch selber.
 

Neue Beiträge

Zurück