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.
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.
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
Kommentare
Kommentar von Mathias |
Sehr schöne Neuerungen! Unsere Themes sind bereits Contao 4.11 kompatibel! Danke an Alle!
Einen Kommentar schreiben