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

Inhalt

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.


FlightCMS
2024-01-28
PHP8
post
0