Ergebnis 1 bis 12 von 12

Thema: Twig Template abhängig von page-id

  1. #1
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard 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.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.379
    Partner-ID
    10107

    Standard

    Wenn's für die Text-Inhaltselemente aller News sein soll reicht auch {% if data.ptable == 'tl_news' %}

    Und der bessere Weg die Page ID abzufragen wäre {% if contao.page.id == 6 %} (https://docs.contao.org/5.x/dev/refe...lobals/contao/)
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Wenn's für die Text-Inhaltselemente aller News sein soll reicht auch {% if data.ptable == 'tl_news' %}
    Gut zu wissen. In meinem Fall ging es auch nur um ein bestimmtes Archiv, daher gefiel es mit mir ID besser. Auch auf die Gefahr hin, dass sich die mal ändern kann. Vielleicht wäre ein eigens vergebener ID-Name im Body auch besser.

    Und der bessere Weg die Page ID abzufragen wäre {% if contao.page.id == 6 %} (https://docs.contao.org/5.x/dev/refe...lobals/contao/)
    Ach, verdammt. Ich hatte es mit page.id versucht, was zu Fehlern führte. Auch mit page_id und env:age_id. Hab genau diese Stelle nicht in der Doku gefunden - irgendwie kam ich nicht drauf, ins Kapitel "Globals" zu schauen, sondern suchte bei den Filtern und Insert Tags herum.
    Aber ich schrieb ja auch, es geht bestimmt eleganter. ;-)

  4. #4
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Vielleicht darf ich hier noch eine Frage zu Twig-Templates loswerden:

    Ich versuche gerade, die Anordnung der Elemente in der Newsdetailansicht zu ändern. Zum Teil kommen die Inhalte der Newsdetails über content-elemente (z.B. Text-Elemente), zum Teil über news-templates (wie Autor, Headline 1 und 2). Das Twig für das Text-Element scheint die Headline nicht zu kennen (?), und daher bekomme ich die nicht in das Twig-Konstrukt geladen.

    Jedenfalls möchte ich die news_full.html.twig-Datei ändern (und nicht mit der news_full.html5 arbeiten, da die ja praktisch veraltet ist) und suche zwecks Orientierung nach dem Original.

    Ich kann über Templates -> neues Templates kein Twig-Template von dem Typ anlegen, dort wird mir nur das news_full.html5 angeboten.
    Ich habe das Template manuell angelegt, und hier fehlen mir jetzt die Infos zu den Blöcken.

    Ich finde hier ...
    vendor/contao/core-bundle/contao/templates/twig
    ... zwar etliche andere Templates, aber - natürlich - nicht die News-Twigs.

    Wohingegen analog hier ...
    vendor/contao/news-bundle/contao/templates/
    ... nur die alten html5-Templates liegen, ein Verzeichnis "twig" gibt es hier nicht.

    Wo finde ich das denn? Oder muss ich sowas grundsätzlich von Github ziehen?
    Geändert von pipkin (24.02.2026 um 19:30 Uhr)

  5. #5
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    3.066

    Standard

    Zitat Zitat von pipkin Beitrag anzeigen
    Ich finde hier ...
    vendor/contao/core-bundle/contao/templates/twig
    ... zwar etliche andere Templates, aber - natürlich - nicht die News-Twigs.
    Die Templates zu News findest Du im news-bundle (und nicht im core-bundle). Im Backend bearbeiten sollte im Template Studio gehen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  6. #6
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Mh.
    Die Templates zu News findest Du im news-bundle
    In vendor/contao/news-bundle/contao/templates/ liegen bei mir (Contao 5.3) lediglich die alten html5-Templates.

    Template Studio gibt es erst ab 5.5, oder?

    Ich habe derzeit etliche Updates LTS 4.13 -> LTS 5.3 auf dem Tisch und möchte nach Möglichkeit schon mal alles auf Twig umrüsten und die html5-Altlasten loswerden, damit das nächste Update auf LTS 5.7 nicht so ein Brecher wird.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.379
    Partner-ID
    10107

    Standard

    Die Twig Templates für alle HTML5 Templates hast du ab Contao 5.7. Davor baust du sie dir selber.
    » sponsor me via GitHub or Revolut

  8. #8
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Könnte ich mir ein twig-Template wie das "news_full.html.twig" einfach aus einer neueren Version (oder aus den Contao-Dateien auf Github) an einen Ort meiner Wahl in meiner 5.3er-Installation kopieren und dann darauf Bezug nehmen mit
    Code:
    {% extends "@Contao/ort_meiner_wahl/news_full.html.twig" %}
    und dann mit meinem individuellen template/news_full.html.twig genauso smart mit Blöcken arbeiten wie bei den vorhandenen Templates?
    Denn dann müsste ich bei einem Update auf eine Version, in der es diese Twigs gibt, ja nur noch diese Zeile anpassen.

  9. #9
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.748
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dann würde ich doch eher den Weg eines Updates gehen.
    Technisch möglich sein würde das aber m.E. auch nicht so ganz einfach, denn das Originaltemplate was Contao verwendet ist in der 5.3 ja das HTML5-Template. Das kannst Du zwar mit einem Twigtemplate überschreiben - also eventuell mit dem Originaltemplate aus Contao 5.7 und dann würdest Du erst mit Deinem individuellen Template überschreiben.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  10. #10
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Ich denk da nochmal drauf rum. Bei eigentlich fast allen Installationen, die ich in die Finger bekomme, wird nur von LTS zu LTS geupdatet. Wahrscheinlich wäre es dann besser, die volle Twig-Umstellungen dann erst mit der LTS 5.7 in Angriff zu nehmen.

    Ok, danke für Eure Einschätzungen. :-)

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.379
    Partner-ID
    10107

    Standard

    Contao 5.7 wurde ja bereits veröffentlicht.
    » sponsor me via GitHub or Revolut

  12. #12
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    588

    Standard

    Contao 5.7 wurde ja bereits veröffentlicht.
    Absolut richtig, und wenn ich zu entscheiden hätte, wäre das auch die Zielversion jetzt.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •