vLIB Einführung |
![]() |
Kommen wir nun zu dem interessanten (und schwierigstem) Thema: den LOOPS. Anmerkung: Der Begriff "Loop" wird nicht in allen Template Engines verwendet. Ein LOOP ist in TinyButStrong ein "Block" und in Smarty werden dafür die Begriffe "section" und "loop" verwendet. Worum geht es bei einem LOOP? Dieses Konstrukt gleicht einer WHILE-Schleife, die eine bestimmte Anzahl von Daten oder Datensätzen ausgibt.
Um einen LOOP zu verwenden müssen die Daten in einem Array zur Verfügung stehen. Die Theorie, die hinter LOOPs steht, ist nicht ganz leicht zu verstehen. Die Variable $loop im untenstehenden Skript enthält einen sogenannten LOOP-Array. Bitte lesen Sie nach diesem Beispiel das letzte Kapitel Aufbau und Struktur eines LOOP-Arrays sehr sorgfältig durch. Das Verständnis von mehrdimensionalen Arrays ist für LOOP-Strukturen äußerst wichtig.
require_once 'vlib/vlibTemplate.php';
$tmpl = new vlibTemplate('tmpl/loop.htm');
$loop = array(
0 => array('u_id' => 1, 'u_name' => 'Claus'),
1 => array('u_id' => 2, 'u_name' => 'Kelvin'),
2 => array('u_id' => 3, 'u_name' => 'Skrol'),
3 => array('u_id' => 4, 'u_name' => 'Micheal')
);
$tmpl->setloop('loop', $loop);
$tmpl->pparse();
Dieses Beispiel benutzt einen klassischen LOOP-Array, der INTEGER und STRING Indizes (Mehrzahl von "Index") verwendet. In PHP spricht man von assoziativen Arrays und Arrays mit numerischem Index. php.net benutzt nicht nur den Begriff "Index", sondern auch "Schlüssel", aber andere Programmiersprachen verwenden immer das Wort "Index" oder "Indizierung", wenn es um den Arrays geht. Deswegen werde ich diesen Begriff ebenfalls verwenden.
Mit der Methode setloop() wird der LOOP-Array dem Template übergeben.
<h1>vlibTemplate LOOP is displayed using <p></h1>
<tmpl_loop name='loop'>
<p>User: {tmpl_var name='u_id'} - {tmpl_var name='u_name'}</p>
</tmpl_loop>
Die Kunst bei LOOP-Problematiken liegt nicht auf der Seite des Templates, sondern darin, dass der LOOP richtig aufgebaut sein muss. Für Debug-Zwecke ist der Befehl print_r() sehr zu empfehlen. Auch wenn man ein Problem mit LOOP-Arrays hat, sollte man diesen Befehl in sein PHP-Skript einbauen und die Ausgabe mit den Beispielen vergleichen.