Contao 5.3: Alle Neuerungen im Überblick

Was ist neu? Was ist besser? Lohnt sich das Contao Update auf Contao 5.3 bereits jetzt schon?
Contao ist am 15.02.2024 in der neusten Version 5.3 erschienen. Die neue Version bringt einige interessante Funktionen, von denen man gehört haben sollte. Am Ende dieses Beitrags bist Du über die wichtigsten Neuerungen, alle technischen Voraussetzungen und einige Besonderheiten informiert. Alle Neuerungen werden wie gewohnt aus Sicht folgender Anwender*Innen vorgestellt: Einsteiger*Innen, Redakteur*Innen und Entwickler*Innen bzw. Administrator*Innen.
Inhaltsverzeichnis
Contao 5.3 kurz und kompakt
- Planungssicherheit:
Contao 5.3 ist die neue LTS Version. Contao 5.3 erhält Updates bis zum 14.02.2027. Sicherheitsupdates werden bis zum 14.02.2028 bereitgestellt. - Performance Boost:
Gegenüber früheren Versionen verspricht die neue Version einen deutlichen Sprung nach vorne in Sachen Performance und Stabilität. - Usability Boost:
Überarbeitung des Designs im Backend und Pflege von Inhalten mit weniger Klicks. - Sicherheit:
Die Content Security Policy kann jetzt über mehrer Möglichkeiten gepflegt und angepasst werden. - Technische Verbesserungen:
Das Erstellen von Links wurde wesentlich vereinfacht und standardisiert.
Neues für Redakteur*Innen
listWizard
Der listWizard wurde verbessert, nach dem Duplizieren wird nun das erste Eingabefeld bzw. Textfeld direkt fokussiert.
Ticket #6819
TinyMCE und Überschriften
In Textfeldern und Überschriften kann nun ein Breitenloses Leerzeichen genutzt werden. #6742
Beispiel:
[zwsp]
wird zu ​
Neue Twig-Funktionen
Zum generieren von Inhalts-URLs steht nun eine neue Twig-Funktion zur Verfügung. zum generieren von Inhalts-URLs
Beispiel: {{ content_url::mein-beitrag.html }}
Ticket #6738
Content Security Policy (SCP) Richtlinien im TinyMCE
Die Content Security Policy (SCP) Richtlinien werden nun auch im TinyMCE zum Einsatz kommen.
Damit wird die Sicherheit erhöht, aber es werden auch die Möglichkeiten der Redakteure eingeschränkt.
Mehr zum Thema findest du im Admin Bereich.
Ticket #6719
Dateiverwaltung
Die Benutzerfreundlichkeit in der Dateiverwaltung wurde weiter verbessert. Das ausgewählte Bild wird nun optisch besser hervorgehoben und es wird automatisch zum ersten ausgewählten Bild gescrollt. Das Suchen nach dem gewählten Bild entfällt also zukünftig.
Ticket #6672
Neues Inhaltselement Beschreibungsliste (Description List)
Das Element erzeugt eine Beschreibungsliste bzw. eine Liste von Begriffen und Details. Du kannst das Begriffsfeld leer lassen, um mehrere Details für einen Begriff anzugeben.
Ticket #5424
Kanonische Links für News und Events
Kanonische Links (das canonical Tag) kann nun auch für Einträge in Nachrichten und Veranstaltungen genutzt werden.
Verschachtelte Inhaltselemente
Für die Content-Slider und das Akkordeon gibt es eine neue Darstellungsmöglichkeit im Backend. Das Feature verspricht eine bessere Übersichtlichkeit und es kann auch für andere Elemente und von Erweiterungen eingesetzt werden.
Ticket #6521
Verbesserte Ansicht beim Bearbeiten
Jedes Inhaltselement enthält nun ein Kontext-Menü um direkt auf bestimmte Bereiche zu springen. Das Menü verbleibt beim Scrollen am oberen Rand.
Ticket #6353
Neues für Entwickler*Innen und Administrator*Innen
Content Security Policy (SCP) Richtlinien
Neue Einstellungen für die Root-Seite
Es besteht nun die Möglichkeit die Content Security Policies für das Frontend im Backend zu definieren. Über den Website-Root kann die Einstellung für jede Root-Seite vorgenommen werden. #6631
Twig csp_source
Es können nun mehrere Quellen beim Hinzufügen der Content Security Policy (SCP) Richtlinien angegeben werden.
Beispiel:{% do csp_source(['script-src', 'style-src'], 'https://www.example.com') %}
Ticket #6814
Im TinyMCE
Die Content Security Policy (SCP) Richtlinien kommen nun auch im TinyMCE zum Einsatz.
Die Administrator*Innen sollten die notwendigen Einstellungen vornehmen. Individuelle Templates müssen für die neuen Funktionen aktualisiert werden. Betroffen sind die Templates text.html.twig, ce_text.html5, com_default.html5, event_teaser.html5, event_list.html5, event_full.html5, mod_article.html5, form_message.html5, form_captcha.html5, mod_two_factor.html5, news_short.html5, news_latest.html5, news_full.html5, mod_faqreader.html5 und, mod_faqpage.html5.
Beispiele:<p style="display:inline-block">Foobar</p>
<li style="list-style: none">Foobar</li>
Diese Angaben im TinyMCE würden nicht mehr funktionieren, wenn die SCP-Richtlinien "inline styles" nicht erlauben.
Folgende Angaben sind im Editor per Definition erlaubt:'text-align' => 'left|center|right|justify',
'text-decoration' => 'underline',
'background-color' => 'rgb\(\d{1,3},\s?\d{1,3},\s?\d{1,3}\)|#([0-9a-f]{3}){1,2}',
'color' => 'rgb\(\d{1,3},\s?\d{1,3},\s?\d{1,3}\)|#([0-9a-f]{3}){1,2}',
'font-family' => '((\'[a-z0-9 _-]+\'|[a-z0-9 _-]+)(,\s*|$))+',
'font-size' => '[0-3]?\dpt',
'line-height' => '[0-3](\.\d+)?',
'padding-left' => '\d{1,3}px',
'border-collapse' => 'collapse',
'margin-right' => '0px|auto',
'margin-left' => '0px|auto',
'border-color' => 'rgb\(\d{1,3},\s?\d{1,3},\s?\d{1,3}\)|#([0-9a-f]{3}){1,2}',
'vertical-align' => 'top|middle|bottom',
Ticket #6719
Backupmanager einsetzen!
Der Backupmanager darf nun auch offiziell von allen Erweiterungen für ein Backup eingesetzt werden. Er war vorher als @internal deklariert.
Ticket #6858
Twig
Es stehen neue globale Twig-Variablen zur Verfügung.{{ contao.has_backend_user }}
{{ contao.is_preview_mode }}
{{ contao.request_token }}
{{ contao.page.* }}
Ticket #6436
Content-URL-Generator
Es wurde ein neuer "Content-URL-Generator" integriert um einfacher URLs erstellen zu können.
Der Generator ersetzt unter anderem die Funktion getFrontendUrl() der Page Klasse bzw. die speziellen Funktionen der News-, Event-, Newsletter-, und FAQ-Module bzw. Model.
Dem Generator kann nun einfach das entsprechende Objekt und die gewünschten Parameter übergeben werden und man erhält die fertige URL.
Beispiele:$url = System::getContainer()->get('contao.routing.content_url_generator')->generate($objPage);
$url = $this->urlGenerator->generate($eventModel, [], UrlGeneratorInterface::ABSOLUTE_URL);
$url = $this->urlGenerator->generate($article, ['parameters' => $strParams], UrlGeneratorInterface::ABSOLUTE_PATH);
$this->container->get('contao.routing.content_url_generator')->generate($content, $parameters, $referenceType);
Ticket #6596
Automatisch Erkennung von Controllern
Für eigene Controller mit Routen muss zukünftig keine routes.yaml mehr angelegt werden.
Ticket #6513
Bessere Berechtigungen für Seiten, Artikel und Inhaltselemente
Die Berechtigungen für Seiten und Artikel wurden weiter verbessert, im Wesentlichen ist nun folgendes möglich:
- Anpassen der Berechtigungen für tl_article und tl_page
- Die Auswahl für die Berechtigung wurde einheitlich umgesetzt
- Der Zugriff kann auf bestimmte Seitentypen eingeschränkt werden
- Der Zugriff auf Artikel kann verweigert werden (durch übergeordnete Seiten (Vererbung) oder zum Beispiel im Artikelmodul das im Layout eingesetzt wird)
- Der Zugriff auf Inhaltselemente kann anhand der übergeordneten Berechtigung von Artikeln eingeschränkt werden.
- Ein Benutzer kann nun Artikel kopieren, wenn er entweder eine Hierarchie- oder eine Bearbeitungsberechtigung hat.
- Neue Artikel oder Kopien können nur eingefügt werden, wenn ein Benutzer beide Berechtigungen hat.
- Die neue globale Operation verschwindet automatisch, wenn der Benutzer keine Berechtigung hat, eine Seite/einen Artikel irgendwo im Baum zu erstellen.
Ticket #6675
Weitere neue Funktionen und Verbesserungen
Hier kannst Du dich noch einmal durch alle neuen Funktionen klicken, leider kann ich im Rahmen diese Beitrages nicht alle Funktionen einzeln unter die Lupe nehmen und erläutern.
- #6232 Implement front end module permissions (bezin)
- #6646 Add an image size voter (aschempp)
- #6584 Add enum support for DCAs and models (SeverinGloeckle)
- #6683 Add more database indexes (Toflar)
- #6650 Decouple the calendar, FAQ and news bundles from the comments bundle (zoglo)
- #6639 Allow adding a "lost password" page to the login module (zoglo)
- #6529 Add the DNS mapping migration (fritzmg)
- #5810 Add a VFS decorator that supports user permissions (m-vo)
- #6605 Optimize the MySQL indexes (leofeyer)
- #6652 Sort options by key if they use language references (leofeyer)
- #6558 Inline the CSS from a newsletter template before sending (leofeyer)
- #6626 Add a modern content slider element (leofeyer)
- #6673 Properly name the worker supervision cron (Toflar)
- #6669 Use the attributes_callback to make the logout redirect mandatory (aschempp)
- #6661 Add a z-index to the limit toggler (zoglo)
- #6668 Sync the logic to generate multiple aliases (aschempp)
- #6516 Implement worker supervision (Toflar)
- #6651 Do not load style sheets lazily by default (leofeyer)
- #6648 Add a modern accordion element (leofeyer)
- #6615 Automatic login for cross-domain preview links (aschempp)
- #6643 Add a voter for tl_newsletter_recipients (aschempp)
- #6642 Add a voter for tl_undo (aschempp)
- #6638 Add the onpalette_callback (aschempp)
- #6553 Automatically enable the Strict Transport Security (HSTS) header (Toflar)
- #6620 Rename "childs" to "children" (leofeyer)
- #6469 Add more security voters (leofeyer)
- #6614 Sort the tables in the database backup (de-es)
- #6603 Unify the deprecation messages (leofeyer)
- #6594 Remove column from articles URL (aschempp)
- #6583 Make Symfony 6.4 the minimum version (leofeyer)
- #6569 Show the back end header on scroll-up (leofeyer)
- #6557 Make the back end header sticky on all devices (leofeyer)
- #6551 Use the picker to select article target in news and calendar (aschempp)
- #6518 Populate contao_ Symfony translations into $GLOBALS['TL_LANG'] (fritzmg)
- #6527 Rewrite tree mode toggling to Stimulus controller (aschempp)
- #6303 Implement a global "expand/collapse elements" button (aschempp)
- #6533 Register a web processor to add log extras (aschempp)
- #6528 Automatically generate the global operations (aschempp)
- #6206 Make the downloads controller more flexible for own sources (Toflar)
- #6494 Automatically translate the default maintenance template (Toflar)
- #6485 Add schema.org support to the virtual file system (Toflar)
- #6513 Automatically load routes in app controllers (aschempp)
- #6465 Allow to re-use the ProcessUtil data (Toflar)
- #6496 Add the event end date to the schema.org data (leofeyer)
- #6506 Add a maximum duration for the back end crawler (leofeyer)
- #6495 Make the back end crawler configurable (leofeyer)
- #6497 Wrap the news date and author in a template block (leofeyer)
- #6498 Replace insert tag flags based on the context (leofeyer)
- #6477 Clean up a TODO (Toflar)
- #6429 Deprecate the MergeHttpHeadersListener class (leofeyer)
- #6446 Rename the templates/_new folder to templates/twig (leofeyer)
- #6404 Remove the BC layers in the ContaoCache class (fritzmg)
- #6386 Deprecate the System::setCookie() method (Toflar)
- #6236 Allow array for page parameters (aschempp)
- #6337 Upgrade the Symfony contracts (leofeyer)
- #6338 Remove the "roave/better-reflection" dependency (leofeyer)
- #6336 Make doctrine/dbal 3.6 the minimum version (leofeyer)
- #6339 Upgrade doctrine/collections and doctrine/persistence (leofeyer)
- #6335 Make Symfony 6.3 the minimum version (leofeyer)
- #6289 Set auto password hasher for all user classes (fritzmg)
- #6324 Always set the JSON_THROW_ON_ERROR flag (leofeyer)
- #6157 Use createElementNS for namespaced XML elements (ausi)
Einsteiger oder Contao 4.13 LTS Nutzer*Innen und das neue Contao 5.3
Du hast bisher noch keine Contao 5 Version eingesetzt? Dann habe ich gute Nachrichten für dich. Denn auf dich warten noch sehr viele weitere neue Funktionen aus den Versionen von Contao 5.0, Contao 5.1 und Contao 5.2. Überwältigend oder? Jetzt stellt sich für dich aber sicher die Frage "Kann ich Contao 5.3 bereits einsetzen?". Ganz klares ja! Was du aber beachten solltest, habe ich bereits in einem vorherigen Artikel beschrieben: Warum sollte ich bereits Contao 5 einsetzen?
Und jetzt viel Spaß beim Contao 5.3 testen!
Technische Voraussetzungen
- PHP Version 8.1 oder 8.2
- Datenbank
MySQL version 8.0 or higher
MariaDB version 10.3 or higher
PostgreSQL version 10.0 or higher
SQLite version 3.8.3 or higher - Pakete
Symfony Version 6.4
Doctrine DBAL Version 3.6
Composer Version 2.4
Twig Version 3.8
Fazit
Wer eine komplexe Contao-Website mit vielen Redakteuren im Einsatz hat, nur die Contao-Core-Erweiterungen nutzt und neben effizientem Arbeiten auch noch Sicherheitslücken minimieren will, dem Empfehlen wir ganz klar den Umstieg auf Contao 5.3 LTS. Neben vielen kleineren Optimierungen lohnt sich die Umstellung auch und wegen PHP 8.1 oder 8.2. Besseres Ressourcenmanagement und höhere Performance steigern auch nachhaltig die User Experience.
Falls du viele Erweiterungen im Einsatz hast, solltest du vorher prüfen, ob die Erweiterungen bereits für Contao 5.3 freigegeben wurden.
Ein Dank geht an alle Beteiligten, aber vor allem an leofeyer, aschempp, Toflar, fritzmg, ausi, m-vo, zoglo, bezin,SeverinGloeckle, de-es und alle Unterstützer der Contao Association, ohne die es die neue Contao Version nicht geben würde.
WIR ❤ CONTAO
Falls du Fragen hast, wir beraten dich gern zu allen Themen in Bezug auf ein Contao Update für Version 5.3.
Du willst uns kennenlernen?

Wir nehmen uns gern die Zeit, um Deine Projektidee anzusehen und zu diskutieren. Natürlich unverbindlich und kostenlos.
Einfach anrufen +49 (0)3521 4767592 oder schreib uns an kontakt@pdir.de
Häufige Fragen zum Update auf Contao 5.3
Ja, unsere Contao Themes wurden bereits für Contao 5.3 optimiert und stehen pünktlich für den Einsatz zur Verfügung.
MATE Theme ✓
ODD Theme ✓
NATURE Theme ✓
0.1 Theme ✓
CONVERT Theme ✓
Den Entwicklungstand für alle Themes und Erweiterungen findest du auch in unserer Übersicht.
LTS steht für Long Term Support.
Seit der Contao-Version 4.4 LTS wird Contao mit einer regulären Support Laufzeit von 3 Jahren veröffentlicht und in dieser Zeit mit Updates und 4 Jahre mit Sicherheitsupdates unterstützt. Das bedeutet planbare und langfristige Sicherheit für den Websitebetreiber und dadurch seltenere Website-Relaunches.
Die neuste LTS Version ist Contao 5.3 LTS, sie ergänzt Contao 4.13 LTS, welche noch bis zum 14.02.2026 Sicherheitsupdates erhält.
Contao 5.3 LTS wird bis zum 14.02.2027 mit Updates und bis zum 14.02.2028 mit Sicherheitsupdates
Über die Datenschutzgrundverordnung (DS-GVO) ist in Artikel 32 geregelt, dass IT Systeme dem "aktuellen Stand der Technik" entsprechen müssen. Durch Updates und Sicherheitsupdates halten wir Ihr Contao auf dem aktuellsten Stand.
Zur Ermittlung der Kosten des Contao-Updates dient der kostenlose Systemcheck.
Über diesen werden alle relevanten Faktoren mit Ihnen zusammen analysiert und anschließend erstellen wir Ihnen auf dieser Basis ein Angebot.
Die Kosten für die Updates können variieren. Abhängig sind diese in der Regel von drei Faktoren:
1. Der Anzahl der Versionssprünge:
Als Beispiel: Ein Update von der Version 2.x auf die Version 4.13 beinhaltet 3 Versionssprünge:
- Von Contao/Typolight 2.x auf Contao 4.13 LTS
- Von Contao 3.x LTS auf Contao 4.13 LTS
- Von Contao 4.4 LTS auf Contao 4.13 LTS
- Von Contao 4.9 LTS auf Contao 4.13 LTS
- Von Contao 4.13 LTS auf Contao 5.0
- Von Contao 4.13 LTS auf Contao 5.3 LTS
- Von Contao 5.0 auf Contao 5.1
- Von Contao 5.1 auf Contao 5.2
- Von Contao 5.2 auf Contao 5.3 LTS
Je näher die Ursprungsversion und die Zielversion beieinander liegen, desto geringer sind die Kosten.
2. Die eingesetzten Erweiterungen:
Die Anzahl der eingesetzten Contao Extensions beeinflusst den Aufwand. Wichtiger jedoch ist, ob verfügbare Updates der eingesetzten Extensions existieren.
Je nach dem, ob Extension Updates existieren können diese:
- einfach upgedatet werden
- aufwändig angepasst werden
- oder Alternativen etabliert werden
3. Die Servereinstellungen:
Verwendete Cronjobs, Schnittstellen zu weiteren Systemen, PHP Version und die MYSQL Version
Eine Kostenbewertung ohne Systemcheck ist daher nicht möglich.
Unsere Contao Upgrade Angebote sind Pauschalpreise.
Dabei gehen wir von dem Wissenstand zum Zeitpunkt der Angebotsabgabe aus.
Sollten im Zuge der Umsetzung Aufwände anfallen, die nicht vorhersehbar oder zum Zeitpunkt der Angebotsabgabe nicht bekannt waren, werden wir diese selbstverständlich mit Ihnen besprechen und ggf. zur Abrechnung bringen.
Unvorhergesehenes könnten beispielsweise unbekannte Cronjobs sein, über die wir nicht in Kenntnis gesetzt wurden oder Serverproblematiken, für die wir nicht verantwortlich sind.
Jede Contao-Version stellt unterschiedliche Anforderungen an PHP und MySQL. Je älter das verwendete Contao ist, desto älter sind auch die möglichen PHP und MySQL Versionen.
Auf aktuelle Versionen von Contao, PHP und MySQL upzudaten bieten deutliche Performancesteigerungen, so dass sich die Ladezeit der Contao-Website verbessert.
Welche Contao-Version mit welcher PHP und MySQL Version zusammenpassen ist nachfolgend aufgeführt:
Contao Version | PHP Version | MySQL Version |
Contao 2 | PHP 5.2 - 5.6 | MySQL 4.1 |
Contao 3 | PHP 5.3 - 7.4 | MySQL 5.0.3+ |
Contao 4.4 | PHP 5.6 - 7.4 | MySQL 5.1+ / 5.5+ |
Contao 4.9 | PHP 7.2 - 8.1 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 4.11 | PHP 7.3 - 8.1 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 4.12 | PHP 7.3 - 8.1 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 4.13 | PHP 7.4 - 8.1 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 5.0 | PHP 8.1 - 8.2 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 5.1 | PHP 8.1 - 8.2 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Contao 5.3 LTS | PHP 8.1 - 8.2 | MySQL 8.0+ oder gleichwertiger MariaDB Server |
Weitere Systemvoraussetzungen findest du im Contao Handbuch.
Weiterführende Links
Contao 5.3 Änderungsübersicht [Link, EN]
Contao 5.3 Veraltetet Funktionen [Link ,EN]
Alle Funktionen aus Contao 5.2
Alle Funktionen aus Contao 5.1
Alle Funktionen aus Contao 5.0
Im Contao Handbuch sind bereits einige der neuen Contao 5.3 Funktionen beschrieben.
Du willst mehr über Contao wissen?
Ähnliche Beiträge
Zurzeit sind keine Nachrichten vorhanden.
*******************
Liebe Leser,
Menschen sind nicht ausschließlich Frauen, Männer, weiblich, männlich, divers – Menschen können vielfältiger sein! Wir möchten euch ALLE als Menschen ansprechen, egal von welchem Geschlecht oder welcher Kultur. Sprachlich ist es schwierig, euch alle „richtig“ anzusprechen. Daher verwenden wir – auch für eine bessere Lesbarkeit – bei Personenbezeichnungen meist die männliche Form, wie Dienstleister oder Partner. Aber eins ist uns wichtig: Keiner soll sich ausgeschlossen fühlen.
Zudem sind wir Verfechter des DU #gernperdu und gestalten so unsere tägliche Kommunikation etwas lockerer und persönlicher. Auch hier gilt: Wir bringen allen die gleiche Wertschätzung entgegen.
*******************