Dynamisches index.twig

Dieser Beitrag zeigt Ihnen, wie Sie dynamische Templates anlegen, welches verschiedene Ordner anlisten kann.

Nutzen Sie das Flatfile CMS Pico, dann sind Sie bereits über das index.twig Template gestoßen. Zudem haben Sie sicherlich auch das Codebeispiel für die Blog-Ansicht gesehen (siehe hier). Mit Hilfe dieses Loop können Sie Beiträge aus Verzeichnissen (Blog-Verzeichnis) anlisten. Arbeiten Sie jedoch mit verschiedenen Verzeichnissen ähnlich wie Kategorien wird es etwas umständlich, denn Sie müssten für jedes Verzeichnis eine eigene index.twig anlegen das den Pfadnamen des zu listenden Ordners fest enthält.

...
{% for page in pages("blog")|sort_by("time")...
...

In etwa kennen Sie das obige Beispiel aus der Standardinstallation des Pico CMS. Würden Sie also verschiedene Ordner haben, dann müssten Sie verschiedene index-xyz.twig erzeugen, in denen die diversen Ordner fest vergeben sind. Einfacher geht es, wenn Sie eine weitere Meta-Angabe in den *.md Datein einfügen. Legen Sie ein neues Attribut directory an, welches in jeder index.md den zu durchsuchenden Ordner repräsentiert.

---
Title:       Pico
Author:      Oliver Lohse
Date:        2020-04-25
Robots:      noindex,nofollow
Template:    index
directory:   pico
Description: Das freie CMS Pico...
---

Das Beispiel oben zeigt den Metainhalt der index.md aus dem Ordner pico und verwendet das Template index.twig. Das Template index.twig kann den Inhalt in seiner loop-Section wie folgt auswerten:

027  {% for page in pages( meta.directory )|sort_by("time")|reverse if not page.hidden %}
028    <div class="row mb-5">
029      <div class="col-sm-5">
030        <h3><a href="{{ page.url }}">{{ page.title }}</a></h3>
031        <p class="small text-muted">{{ page.date_formatted }} &ensp; {{ meta.author }}</p>
032      </div>
033      <div class="col-sm-7">
034        <p class="excerpt">{{ page.description }}</p>
035      </div>
036    </div>
037  {% endfor %}

Der bekannte Codeschnipsel aus dem Blog-Beispiel des Pico-Projektes (siehe hier)

Die Templatevariable

{{ meta.directory }} 

in Zeile 27 legt in der for-Schleife den zu ladenden Ordner fest und der loop listet alle Beiträge sortiert ach Datum an.

Für das korrekte Funktionieren dieses sehr dynamischen Mechanismus ist es Bedingung, das Sie in jede index.md eines Ordners das Key-Value Paar directory: ordnername anlegen. Beachten Sie bitte auch, das die Groß-Kleinschreibung relevant ist, der Key Directory ist ein anderer Schlüssel als directory.

SEO - Die Suchmaschinen-Optimierung ist eine der wichtigsten Disziplinen im Online-Marketing. Wenn es Ihnen darum geht, für Ihre Webseite oder Ihren Webshop ein Top-Ranking in den SERPs zu erzielen, müssen Sie wissen, wie Suchmaschinen ticken und welche Stellschrauben Sie wie einstellen. Sebastian Erlhofers SEO-Handbuch ist für Ihre SEO-Ausbildung ein wichtiger Begleiter und ein Quell an Wissen, aus dem Sie Praxiswissen und Profitipps schöpfen.

Über Amazon unterstützen

lesen...

© CMSWorkbench.de

dynamisch startseite template

about me

About me

Mein Name ist Oliver Lohse. Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Programmier-Sprachen und 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 24 Jahren arbeite ich als Entwickler in einem großen Softwareunternehmen für Versicherungen in Hannover Niedersachsen und seit etwa 37 Jahren im EDV-Sektor mit wechselnden Aufgaben.