Downloads auf PDF-Dateien gefiltert
Die Aufgabenstellung war Folgende:
Aus einem Ordner der Dateiverwaltung durften nur PDF-Dateien im Inhaltselement Download aufgelistet werden. Ohne jedoch die Dateien einzeln anhaken zu müssen » Häkchen auf Ordner-Ebene
PHP-Code:
{# templates/content_element/downloads/pdf-files.html.twig #}
{% extends "@Contao/content_element/downloads.html.twig" %}
{% block content %}
{% with { items: downloads|filter(item => item.file.extension(true) == 'pdf') } %}
{{ block('list_component') }}
{% endwith %}
{% endblock %}
{% block list_item_attributes %}
{{- attrs(list.item_attributes|default).addClass(['download-element', "ext-pdf"]) -}}
{% endblock %}
{% block list_item %}
{% with { download: item } %}{{ block('download_component') }}{% endwith %}
{% endblock %}
Ich wende hierbei einen Filter auf die Variable downloads an.
• downloads|filter(item => item.file.extension(true) == 'pdf') sorgt dafür, dass nur Elemente mit der Dateiendung .pdf in die items-Liste übernommen werden.
• die Anpassung in list_item_attributes sorgt dafür, dass die Datei-Klasse "ext-pdf" erhalten bleibt.