CMS - Workbench | DE


Templating and Coding for CMS (WordPress, Bludit, Automad, Typesetter, GetSimple, Pico and more)


Schleifen in Templates

Bauen Sie komplexe Schleifen in Smarty Templates auf die den Inhalt des Templates dynamisch prüfen.

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}

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.

17.11.2020 • Smarty • Smarty Schleifen for


Oliver Lohse - Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B.: Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 22 Jahren arbeite ich in einem grossen Softwareunternehmen in Niedersachsen. Sie sehen auf dieser Seite mein eigens für Bludit CMS entwickeltes Theme "Reaktor-Block IV".

Kontakt: Κontakt@Οliver-Lohse.de


Empfehlungen:



Config mit Smarty lesen

Lesen Sie mit Smarty die Konfiguration config.conf und lesen Sie die Einstellungs-Werte aus.

mehr...



CMS Workbench

Hilfreiche Tipps, Tricks, Codings und Codeschnipsel, die im Rahmen der Entwicklung, Weiterentwicklung und Templatings zum Thema CMS immer wieder benötigt werden - aus verschiedenen Sprachdialekten wie Java, JavaScript, PHP, Python und anderen.