Beitragsmenü ohne Plugin in Pico


Für die Einbindung eines Menüs gibt es kostenlose Plugins, Sie können dies auch mit Mitteln des Templates umsetzen und verzichten auf unsichere Plugins

Das bekannte Pico CMS Plugin PicoPagesList.php ist in der Lage die Beiträge des aktuellen Ordners in dem sich der Leser befindet als Menü anzuzeigen. Jedoch ist dies mit wenigen Codezeilen auch ohne Plugin einfach umsetzbar.

008  {% set tmp = current_page.id %}
009  {% set path = "" %}
010
011  {% for key in tmp|split('/',-1) %}
012      {% set path = [path, key, '/']|join %}
013  {% endfor %}
014
015  <h3>Weitere Beiträge</h3>
016  <hr>
017  <a href="{{base_url}}">home</a><br>
018
019  {% for page in pages(path, depth=0)|sort_by("time")|reverse if not page.hidden  %}
020      <a href="{{ page.url }}">{{ page.title }}</a><br>
021  {% endfor %}

Code

Anzeige der Beiträge des aktuellen Ordners ohne Pico-Plugin (basierend auf dem angezeigten Beitrag)

Das Coding oben ermittelt anhand des aktuell angezeigten Beitrags die URL ab dem Ordner content und teilt diese am "/"-Trenner in eine iterierbares Array auf und entfernt zudem den wenig nützlichen Beitragsnamen am Ende der URL (-1). In Zeile 12 wird jedes einzelne Element des Arrays per Twig-join konkatiniert. Somit steht der Name des Ordners für die for-Schleife (Zeile 19) zur Verfügung und kann wie in den vielen Codebeispielen des Pico-Projektes verwendet werden.

Möchten Sie zum aktuellen Ordner auch noch den Inhalt der enthaltenen Unterordner mit anzeigen, dann sollten Sie statt depth=0 den Wert auf depth=1 anpassen.


Mein Name ist 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 25 Jahren arbeite ich in einem großen Softwareunternehmen für Versicherungen in Hannover Niedersachsen.

FlightCMS
2024-01-28
PHP8
post
Kontakt@Oliver-Lohse.de

Datenschutz

Die Webseite verwendet keinerlei Tracking- oder Speichermechanismen, die einen Rückschluss auf das Leserverhalten und Ihre Identität zulassen. Die Webseite verwendet keine Cookies, denn Cookies haben einen schlechten Ruf.

Impressum

CMSWorkbench ist eine Entwicklerseite über meine Arbeit im Bereich der Content Management Systeme. Die vielen Codeschnipsel sind im wesentlichen als kleine Notizzettel zu werten als das es ausgereifte Beiträge wären.