Contao-News

Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.

Contao 4.11.0 verfügbar

von Leo Feyer – Ankündigungen

Contao Version 4.11.0 ist verfügbar. Das Release enthält neue Features wie die Unterstützung von PHP 8 und Symfony 5, dynamische XML-Sitemaps, eine vereinfachte Individualisierung des Backends, ein neues "figure" Insert-Tag, individuelle reguläre Ausdrücke im DCA und einiges mehr.

In seinem Video 10 neue Features in Contao 4.11 stellt Christian die Neuerungen vor.

PHP 8

Die Unterstützung von PHP 8 war komplizierter als erwartet, da in PHP 8 etliche Engine-Warnings neu klassifiziert wurden (siehe https://wiki.php.net/rfc/engine_warnings) und plötzlich Meldungen, die bisher als E_NOTICE ignoriert wurden, als E_WARNING die Ausführung des Codes verhindert haben. Insbesondere der Zugriff auf nicht definierte Array-Properties in Verbindung mit dem DCA war ein großes Problem – der initiale Pull-Request dazu enthielt alleine über 1.800 Änderungen in über 100 Dateien.

Aufgrund der Vielzahl der Änderungen und der dabei zu erwartenden Side-Effects haben wir uns dazu entschieden, die PHP 8-Unterstützung nicht wie ursprünglich geplant in Contao 4.9 LTS einzubauen, sondern als neues Feature in Contao 4.11.

Hinweis zu Contao 4.9 LTS

Da Contao 4.9 LTS noch bis Februar 2024 gepflegt wird, es aber bereits ab Ende 2022 keine aktive Version von PHP 7 mehr geben wird, war uns klar, dass auch Contao 4.9 LTS mit PHP 8 laufen muss. Wir haben das Error-Reporting daher in Contao 4.9.10 so angepasst, dass E_WARNINGs automatisch ignoriert werden, wenn die Installation mit PHP 8 läuft. Solltet ihr contao.error_level in eurer App angepasst haben, müsst ihr diese Änderung übernehmen, um Contao 4.9 mit PHP 8 zu betreiben.

Ressourcen: #2568, #2594, #2599, #2606, #2679

Dynamische XML-Sitemaps

Dynamische Sitemaps werden nicht wie bisher als statische Dateien auf dem Server geschrieben, sondern beim Aufruf der Route /sitemap.xml in Abhängigkeit des jeweiligen Kontexts generiert und im HTTP-Cache abgelegt. Auf diese Weise können auch geschützte Seiten vom Contao-Crawler gefunden und in den Suchindex aufgenommen werden.

Die Ausgabe kann über das neue Event ContaoCoreEvents::SITEMAP individualisiert werden.

Ressourcen: #2295

Individualisierung des Backends

Um das Contao-Backend leichter an den jeweiligen Kunden anpassen zu können, wurden einige Konfigurationsoptionen ergänzt:

# config/config.yml
contao:
    backend:
        attributes:
            app-name: Foobar
            app-version: 1.2.3
        badge_title: staging
        custom_css:
            - files/backend/custom.css
        custom_js:
            - files/backend/custom.js

Die Attribute werden dem Body-Tag als Data-Attribute hinzugefügt. Der Badge-Title wird sowohl beim Login als auch im Backend angezeigt und ermöglicht beispielsweise die Unterscheidung zwischen Staging- und Production-Umgebung.

Ressourcen: #1999

Insert-Tag "figure"

Als Ergänzung zu den bestehenden Insert-Tags {{image}} und {{picture}} wurde in Contao 4.11 das Insert-Tag {{figure}} hinzugefügt, das den Figure-Builder aus dem Image-Studio nutzt. Die drei Insert-Tags unterscheiden sich wie folgt:

  • {{image}}: gibt ein einzelnes, nicht-responsives <img>-Tag aus
  • {{picture}}: gibt ein responsives Bild aus, berücksichtigt jedoch keine Metadaten
  • {{figure}}: gibt ein <figure>-Element inklusive aller Metadaten aus

Ergänzend dazu gibt es auch eine figure()-Methode, die in eigenen Templates genutzt werden kann.

Ressourcen: #2607, #1937

Vorschau-URLs kopieren

Die Preview-Bar wurde um einen Button ergänzt, mit dem man die aktuelle URL ohne das /preview.php-Fragment in die Zwischenablage kopieren kann, um diese anschließend weiterzuleiten oder auf anderem Weg weiter zu bearbeiten.

Ressourcen: #1301

Seitentitel in FAQs überschreiben

Analog zu News und Events kann in Contao 4.11 der Seitentitel, die Beschreibung sowie die Robots-Einstellungen pro FAQ überschrieben werden.

Ressourcen: #1779

Twig-Dateien im Backend bearbeiten

Twig-Dateien wie z.B. das Template für Wartungsarbeiten können in Contao individualisiert werden, indem man einen Ordner bundles/ContaoCoreBundle/Error im Template-Editor anlegt und dort die Datei service_unavailable.html.twig speichert. Ab Contao 4.11 können diese Twig-Dateien auch direkt im Backend bearbeitet werden.

Ressourcen: #2051

Individuelle reguläre Ausdrücke

Unter dem Key rgxp kann im DCA festgelegt werden, welche Eingabe in einem Formularfeld erwartet wird. In Contao 4.11 sind die Optionen httpurl und custom hinzugekommen. Die erste prüft, ob es sich bei der Eingabe um eine absolute URL handelt, die mit http:// bzw. https:// beginnt, und die zweite ermöglicht es, einen individuellen regulären Ausdruck unter dem Key customRgxp zu hinterlegen.

Ressourcen: #2297, Doku

Default-Werte für contao.image.sizes

Wenn man mehrere Bildgrößen in der App-Konfiguration definiert, ließ es sich bisher nicht vermeiden, die gleichen Einstellungen pro Definition immer wieder zu kopieren. Unter dem Keyword _defaults: können in Contao 4.11 Standard-Vorgaben gemacht werden, die für alle Bildgrößen gelten.

# config/config.yml
contao:
    image:
        sizes:
            _defaults:
                formats:
                    jpg: [webp, jpg]
                resize_mode: crop

            large_photo:
                width: 1000
                height: 500

            medium_photo:
                width: 500
                height: 250

            small_box:
                width: 100
                height: 100
                resize_mode: box

Ressourcen: #2243

Und einiges mehr

Eine Übersicht der weiteren Änderungen findet ihr im Changelog.

Symfony-Kompatibilität

Contao 4.11 ist als Übergangsversion von Symfony 4.4 zu Symfony 5 konzipiert und daher mit beiden Major-Versionen von Symfony kompatibel. Unser Ziel ist es weiterhin, die LTS-Versionen beider Projekte zusammenzuführen, also Contao 4.9 LTS mit Symfony 4.4 LTS zu betreiben und Contao 4.13 LTS mit Symfony 5.4 LTS.

Siehe auch: Tickets | Versionsvergleich | Changelog

Alle News anzeigen

Kommentare

Kommentar von Mathias |

Sehr schöne Neuerungen! Unsere Themes sind bereits Contao 4.11 kompatibel! Danke an Alle!

Einen Kommentar schreiben

Bitte addieren Sie 7 und 6.