Twig Template abhängig von page-id
Huhu,
weil ich gerade das Thema in den Fingern hatte und keine Dokumentation für meinen Anwendungsfall gefunden habe, dachte ich, ich teile mein Heureka-Erlebnis hier mal. Für viele sicher kein Thema, aber andere stehen vielleicht genauso mit Fragezeichen da wie ich.
Ich habe gerade eine Website geupdatet mit vielen News und auch normalen Seiten. In der News-Detailausgabe sollten die Text-Elemente anders layoutet sein als in "normalen" Seiten. Weil ich nicht wollte, dass zu jeder bestehenden News oder auch für neue News extra das Template ausgewählt werden muss, wollte ich ein globales Twig-Template haben vom Typ text.html.twig, das für beide Fälle (normaler Artikel und Newsdetail) greift. Hierbei habe ich einfach anhand der Seiten-ID der News-Detail-Seite (6) unterschieden.
So sieht es im Prinzip aus:
{% block content %}
{{ parent() }}
{% if app.request.attributes.get('pageModel').id == 6 %}
<div>News-Detail-Ausgabe</div>
{% else %}
<div>Normale Seite</div>
{% endif %}
{% endblock %}
Sicherlich kann man das auch noch eleganter lösen.