Logo

Dynamisches index.twig für Verzeichnisse in Pico CMS


Dieser Beitrag zeigt Ihnen, wie Sie dynamische Templates anlegen, um damit den Content aus verschiedenen Ordner in Ihrer Webseite anzeigen zu können.

Sabrent ext.Festplattengehäuse

Sabrent ext.Festplattengehäuse - HIGH SPEED Das SABRENT externe Festplatte Gehäuse unterstützt UASP, deshalb kann das Gehäuse Ihnen eine außergewöhlich hohe Übertragungsrate von bis zu 5 Gbps für den Datentransfer bieten! Damit lassen sich HD Filme, Music und data in nur Sekunden transferieren. (Abwärtskompatibel mit USB 2.0 oder 1.1) Hinweis

kaufen...
Automad Bludit Coast GetSimple GRAV Handlebars Java PHP Pico Smarty Templating Typemill WonderCMS WordPress yamlCMS

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.

Passend:


Einen einfachen Twig Counter leicht in Pico CMS aufbauen

Zählen Sie in der Template-Engine Twig eine Counter Variable im Template hoch oder runter und regeln damit Kontrollzwecke in Ihren eigenen Templates.

YAML Syntax mehrzeiliger Inhalt Multiline Umbruch für Pico CMS

Der YAML Standard ist gegenüber JSON durchaus in der Lage mehrzeiligen Inhalt aufzunehmen (Multiline). Der Beitrag zeigt Ihnen, wie Sie mehrzeilige Texte in YAML erzeugen.

Werden Sie Template-Entwickler so starten Sie Templating Tipps

Werden Sie zum Template-Entwickler und beginnen mit leichten Arbeiten, portieren Sie Ihre Templates später in die großen CMS wie WordPress, Bludit oder Joomla


Meta: Instagram CMSWorkbench.de GIMP-Handbuch.de Kontakt Impressum Datenschutz