Schleifen und Beitrags Loops in Smarty

Werten Sie in eigenen Templates mit der Template-Engine Smarty, Variablen aus und steuern dadurch die individuelle Ausgabe des Content Ihrer Webseite.

Inhalt

Beitrags-Loop

Die bisherigen Codebeispiele zum Thema Templating mit der Smarty Engine zeigte eher statische Templates, also Strukturen die fest vorgegeben sind. Haben Sie aber ein Template das dynamisch auf den Inhalt reagieren soll, dann wird es schwieriger, Sie müssen zum Beispiel Schleifen im Template implementieren. Dazu folgendes Codebeispiel aus meinem Template:

071  {for $i=1 to {$max_beitrag} step 3}
072    <div class="row">
073      <div class="col-sm-4">{$beitrag{$i}}</div>
074      <div class="col-sm-4">{$beitrag{$i+1}}</div>
075      <div class="col-sm-4">{$beitrag{$i+2}}</div>
076    </div>
077    <br>
078  {/for}

Code

Der Code oben stammt aus meinem Template home.php und baut alle 3 steps eine neue row (Class aus dem Bootstrap CSS die eine art Tabellen-Zeile erzeugt) auf, die dann aus drei Spalten besteht. Die Templatevariable $beitrag1, $beitrag2 und $beitrag3 wird durch den Schleifenzähler konkatiniert und enthält den Content der Spalte (Class col-sm aus dem Bootstrap erzeugt eine Spalte innerhalb der row).

Dem Template wird mit der Variable $max_beitrag aus der Steuerung index.php übermittelt, wie viele Beiträge überhaupt existieren, zum Beispiel 9. Folglich baut diese Schleife 3 Zeilen zu je 3 Spalten im Zeitungslook auf der Webseite auf.

Auf meiner (anderen) Webseite erzeug dieser Code das oben gezeigte Layout aus verschiedenen Textdateien die im Verzeichnis texte liegen. Würde ich mehr Textdateien im Verzeichnis texte anlegen, dann würde der Code in index.php dies bemerken und die Information ($max_beitrag) an das Template übergeben. Das Template erweitert sich daraufhin selbstständig durch die Schleifenstruktur weiter nach unten, so lange auch Textbausteine vorhanden sind.

Anmerkung: Die Anzahl der Beiträge muss folglich ein Vielfaches von 3 sein, um in jeder Zeile drei Spalten zu füllen. Fehlt der Inhalt einer Spalte, erscheint eine Fehlermeldung.


FlightCMS
2024-01-28
Beitrag,Sortieren,Datum,Titel,ASC,DESC
post
0