Der Pico loop

Die Templatesprache Twig-Symfony bietet bereits einige vorgefertigte Befehle, mit denen es leicht möglich ist die Anzehl der Beiträge eines Ordners zu ermitteln. Für das Coding sollte zunächst der folgende Pico-Loop unterstellt werden, welcher die Ordner der obersten Stufe durchläuft:

...  {% for page in pages(current_page.id) if not page.hidden %}
...  ...
...  {% endfor %}

Elemente des ARRAY mit length zählen

Die Beiträge des Ordners werden im Loop der Variablen page zugewiesen. Die Anzahl der Elemente kann dann ganz leicht mit dem Twig-Filter length ausgegeben werden. Folglich ergibt sich der folgende Codeschnipsel innerhalb des Loop:

...  {% for page in pages(current_page.id) if not page.hidden %}
...      {% if page.meta.template == 'index' %}
...          {{ pages(page.id, depth=0)|length }} Beiträge im Ordner
...      {% endif %}
...  {% endfor %}

Die Variable pages nimmt folglich das Array aller Beiträge page in diesem spezifischen Ordner auf und kann deren Anzahl mit dem Twig-Filter

...|length

anzeigen - sofern die aktuelle page die Templateangabe index enthält, was auf einen Ordner statt auf einen Post hindeutet. Dabei ist die Angabe von

(page.id, depth=0)

wichtig, damit ausschließlich Beiträge innerhalb des aktuellen Ordners ohne Unterordner gesammelt werden.

Twig Syntax des Filters length

Twig-Symfony Doku: https://twig.symfony.com/doc/3.x/filters/length.html


von Oliver Lohse