Ergebnis 1 bis 10 von 10

Thema: Theme-spezifische Twig-Templates werden ignoriert

  1. #1
    Contao-Nutzer
    Registriert seit
    22.08.2009.
    Ort
    Düsseldorf
    Beiträge
    10

    Standard Theme-spezifische Twig-Templates werden ignoriert

    Hallo zusammen!

    Ich betreibe meine Website schon sehr lange und sehr zufrieden mit Contao, tatsächlich habe ich noch mit TYPOlight angefangen. Die Website ist aktuell auf Version 4.13, da die LTS aber nächsten Monat ausläuft, wollte ich auf die 5.6 wechseln, um dann leichter auf die neue 5.7 LTS upgraden zu können. In dem Zusammenhang wollte ich als Symfony-Entwicklerin natürlich auch endlich auf die Twig-Templates umsteigen. Hier stehe ich aber irgendwie komplett auf dem Schlauch.

    Ich habe wie immer ein Theme angelegt, darin meinen Template-Ordner ausgewählt. Dann habe ich im Root "templates" Ordners einen weiteren Ordner "page/layout" angelegt und darin eine "bootstrap.html.twig" erzeugt (also ein Varianten-Template). Diese bootstrap.html.twig habe ich dann über das Template-Studio "geforkt" und in meinen Theme-spezifischen Ordner gepackt. Beide "bootstrap.html.twig" beinhalten "{% extends "@Contao/page/layout.html.twig" %}". Ich habe jetzt also zusätzlich zu "templates/page/layout/bootstrap.html.twig" auch noch eine "templates/themeA/page/layout/bootstrap.html.twig", so, wie es in der Doku auch beschrieben ist. Diese theme-spezifische Twig-Datei habe ich entsprechend meiner HTML-Struktur angepasst und z.b. auch eine CSS-Datei hinzugefügt.

    Zum Schluss habe ich das neue Template im Seitenlayout meines Themes ausgewählt und meiner Seite das Seitenlayout zugewiesen.

    Allerdings taucht keine meiner Änderungen (weder HTML noch CSS) im Frontend auf. Auch im Debug-Modus nicht und auch nicht nach Löschen von Prod und Dev Cache. In der Dev-Toolbar wird mein theme-spezifisches Template auch gar nicht aufgeführt, nur das globale bootstrap.html.twig (was mir sagt, dass mein Seitenlayout zwar kapiert hat, dass es das Bootstrap-Template nutzen soll, aber nicht, dass es davon dann noch eine theme-spezifische Version gibt. Obwohl also eine theme-spezifische bootstrap.html.twig existiert, wird trotzdem die "templates/page/layout/bootstrap.html.twig" herangezogen. Die "templates/themeA/page/layout/bootstrap.html.twig" wird komplett ignoriert.

    Ich hab mich in den Github-Issues und hier im Forum totgesucht, aber ich finde nichts, was meinen Fehler beschreibt.

    Hat vielleicht jemand eine Idee, was ich falsch mache?

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

    Standard

    Poste die Dateistruktur deines templates/ Ordners und den Inhalt deiner Templates.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    22.08.2009.
    Ort
    Düsseldorf
    Beiträge
    10

    Standard

    Hi Spooky,

    das ging schnell Hier die Screenshots:

    Dateistruktur:
    Bildschirmfoto 2026-01-06 um 22.29.58.png

    Root bootstrap.html.twig (extended erst mal einfach nur das default layout)
    Bildschirmfoto 2026-01-06 um 22.30.23.png

    Theme-spezifische bootstrap.html.twig (lädt zusätzlich eine CSS-Datei)
    Bildschirmfoto 2026-01-06 um 22.30.37.png

    Ich hab das gleiche Spiel auch noch für ein Contentelement gemacht, da ich insbesondere diese auch per Theme anpassen will, aber da habe ich den gleichen Fehler.

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

    Standard

    Bitte niemals als Screenshot posten, sondern immer den echten Code.
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    22.08.2009.
    Ort
    Düsseldorf
    Beiträge
    10

    Standard

    Dateistruktur passt aber als Screenshot?

    Ansonsten:

    root bootstrap.html.twig
    Code:
    {% extends "@Contao/page/layout.html.twig" %}
    
    {#
        Adjust how any blocks of parent or used component templates are rendered.
        Try typing "block" or "use" to get autocompletion for available options.
    #}
    Theme-spezifische bootstrap.html.twig
    Code:
    {% extends "@Contao/page/layout/bootstrap.html.twig" %}
    {% block head %}
    {{ parent() }}
    {% use "@Contao/component/_stylesheet.html.twig" %}
    {% add "styles" to stylesheets %}
    {% with {file: asset('/files/assets/2026/css/styles.css')} %}
            {{ block('stylesheet_component') }}
        {% endwith %}
    {% endadd %} 
    {% endblock %}
    {#
        Adjust how any blocks of parent or used component templates are rendered.
        Try typing "block" or "use" to get autocompletion for available options.
    #}

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

    Standard

    Zitat Zitat von faelkchen Beitrag anzeigen
    Dateistruktur passt aber als Screenshot?
    Am besten auch immer über [code] posten in irgendeiner Form.
    » sponsor me via GitHub or Revolut

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

    Standard

    Ich habe es lokal versucht und kann auch bestätigen, dass die Theme spezifische Variante nicht berücksichtigt wird. Du könntest das also als Issue auf GitHub posten.
    » sponsor me via GitHub or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    22.08.2009.
    Ort
    Düsseldorf
    Beiträge
    10

    Standard

    Danke, Spooky, dann versuch ich mich an einem Issue. Ich bin im Debugging inzwischen auch einen Schritt weiter. Ich habe mal dump() Statements im ContaoFileSystemLoader.php verteilt und festgestellt, dass "getCurrentPage()" mit "templateGroup" null returned. Die Seite hat also gar kein Seitenlayout (obwohl ich ihr das Seitenlayout im Backend explizit zugewiesen habe, also nicht mal über Vererbung).

    Ich habe außerdem festgestellt, dass es scheinbar an der Einstellung "Twig-Layout mit Slots" im Seitenlayout zu liegen scheint. Sobald ich das auf "Standardlayout" setze, zeigt mein dump() Statement an, dass die Seite nun unter templateGroup meinen Template-Ordner nutzt.

    Ich packe das mal in ein Issue.

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

    Standard

    Zitat Zitat von faelkchen Beitrag anzeigen
    Die Seite hat also gar kein Seitenlayout (obwohl ich ihr das Seitenlayout im Backend explizit zugewiesen habe, also nicht mal über Vererbung).
    Die Seite hat schon ein Layout, aber die templateGroup des Themes wird nicht gesetzt, wenn du ein Twig Layout verwendest.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    22.08.2009.
    Ort
    Düsseldorf
    Beiträge
    10

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
  •