Contao-News
Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.
Willkommen Contao 5.1
von Marcus Lelle – Aktuelles
Es ist soweit. Die neue Version 5.1 von Contao ist da!
Das Core-Team und viele andere Entwickler:innen haben keine Mühen gescheut und wieder unzählige Stunden damit verbracht, unser Lieblings-CMS auf die nächste Stufe zu heben. Es gibt etliche neue Features für Anwender:innen und Entwickler:innen.
Contao 5.1 löst Contao 5.0 ab, dessen Support damit endet. Die neue Version wird bis August 2023 mit Updates unterstützt. Welche Contao-Versionen aktuell unterstützt werden, kannst du hier nachlesen.
Für Anwender:innen
Backend-Favoriten
Im Contao Backend können nun beliebige Links als Favoriten gespeichert werden.
Die Favoriten werden dann links über den Inhalten gesammelt und können auch in Ebenen verschachtelt werden. Über das Stern-Symbol im orangefarbenen Infobereich können sie bearbeitet, umsortiert und gelöscht werden.
In diesem Zuge ist auch eine neue, dritte Navigationsebene im Backend hinzugefügt worden. #5592
Erweiterte Grid-Ansicht
Bisher konnten Felder in den Eingabemasken von Contao und seiner Erweiterungen nur die volle oder die halbe Breite des verfügbaren Platzes einnehmen. Ab jetzt gibt es für die Felder auch Klassen für 1/4, 1/3, 2/3 und 3/4 Breite. #5672
Dark Mode
Für alle, die einen höheren Kontrast bevorzugen und/oder oft bei Nacht arbeiten gibt es nun einen Dark Mode. #5031
Der Modus passt sich automatisch an deine Betriebssystemeinstellungen an, kann aber natürlich auch manuell gewählt werden.
Mehrfach kopieren
In allen Listenansichten hast du, nachdem du die Funktion "Mehrfach bearbeiten" gewählt hast, nun die Möglichkeit, "Mehrfach kopieren" zu nutzen. Nach dem Einfügen der kopierten Elemente verbleiben diese in der Zwischenablage und können weiter kopiert werden.
Die Funktion wird beendet, indem du auf "Ablage leeren" klickst. #5417
Auf- und absteigende Sortierung
Felder können in Listenansichten nun auf- und absteigend sortiert werden.
Dafür gibt es neue flag Werte für DCA-Felder:
- DataContainer::SORT_INITIAL_LETTER_BOTH Sort by initial letter both ways
- DataContainer::SORT_INITIAL_LETTERS_BOTH Sort by initial X letters both ways
- DataContainer::SORT_DAY_BOTH Sort by day both ways
- DataContainer::SORT_MONTH_BOTH Sort by month both ways
- DataContainer::SORT_YEAR_BOTH Sort by year both ways
- DataContainer::SORT_BOTH Sort both ways
Geschützte Artikel
Du kennst es schon von geschützten Seiten. Wenn du Artikel nur einer oder mehreren Mitglieder-Gruppen nach einem Login zugänglich machst, wird dies in der Übersicht durch ein Symbol mit Schloss dargestellt. #5304
Verbesserte Element-Vorschau
Die Element-Vorschau verrät nun mehr über den Inhalt des jeweiligen Elements. So kann die Redaktion schneller entscheiden, welches Element bearbeitet werden muss, um bestimmte Inhalte des Frontends anzupassen. #5609
Standard-Suchfeld
Entwickler können jetzt pro DCA festlegen, welches Feld standardmäßig durchsucht werden soll, solange Benutzer:innen keine Auswahl getroffen hat. #5364
Hinweis auf fehlende Admin-E-Mail-Adresse
Gleich nach dem Login wird dir im Dashboard ein Hinweis angezeigt, solange du keine Administrator-E-Mail-Adresse in den System-Einstellungen eingegeben hast. #5427
Formulare per Ajax absenden
Jedes Formular in Contao kann nun per Ajax abgesendet werden. Dies kannst du in der Konfiguration des Formulars einstellen. Dann wird keine Weiterleitung auf eine Seite nötig, sondern du kannst eine Meldung festlegen, die nach dem Absenden auf derselben Seite angezeigt wird. #5307
URL und Seiten-ID im System-Log
In den Einträgen des Systems-Logs wird bei jedem Eintrag nun die URL und, sofern vorhanden, die Seiten-ID gespeichert. #3694
Für Entwickler:innen
Login-Rate-Limit
Das Login-Rate-Limit greift jetzt gleichermaßen für bestehende als auch für nicht bestehende Benutzer:innen. Dadurch haben Angreifer:innen eine Möglichkeit weniger, herauszufinden, welche Benutzernamen existieren und welche nicht.
Contao zeigt jetzt auch ein "Account gesperrt" an, wenn ein falsches Passwort für nicht existierende Benutzer:innen eingegeben wird. #5368
Background-Worker
Background-Worker ermöglichen es, langlebige Prozesse wie z. B. das Versenden von Mails oder das Indizieren von Seiten asynchron im Hintergrund auszuführen. #5405
Sie eröffnen entsprechend auch für Erweiterungsentwickler:innen ganz neue Möglichkeiten und wir sind gespannt darauf, was die Community damit tun wird!
Neues Feed-Reader-Modul
Das neue Feed-Reader-Modul liest neben RSS- und Atom-Feeds auch JSON-Feeds. #4847
Das alte Feed-Reader-Modul bleibt aus Rückwärtskompatibilitätsgründen erhalten. Es stehen im Backend also jetzt zwei Frontend-Module zur Auswahl, wobei das eine als «veraltet» markiert wurde.
Asynchrone Cron-Jobs
Neu können Cron-Jobs asynchron ausgeführt werden. Das bedeutet, dass bspw. nicht mehr jeder minütliche Cronjob sequentiell abgearbeitet werden muss, sondern es besteht auch die Möglichkeit, dank Promises, mehrere Jobs gleichzeitig zu starten.
Die neue ProcessUtil-Klasse erleichtert außerdem die Erstellung von asynchronen Cronjobs, die einen Symfony Process bedienen. #5554
Web-Cronjobs automatisch deaktivieren
Eine weitere Verbesserung im Zusammenhang mit Cronjobs ist die neue, automatische Erkennung, ob ein echter Cronjob via CLI vorhanden ist oder nicht. Musste bisher der «Poor-Mans-Cron» noch zwingend händisch in der Config deaktiviert werden (localconfig.disableCron
), so ist dies jetzt nicht mehr nötig. Contao verfügt neu über eine per Default aktive auto
Einstellung. So erkennt Contao automatisch, wenn ein echter, minütlicher Cronjob via contao:cron
läuft und deaktiviert entsprechend den Web-Cronjob. #5591
Error-Handling in Formularen
Der Formulargenerator ist neu in der Lage, generelle Fehlermeldungen im Formular anzuzeigen. Sie müssen sich also nicht mehr zwingend auf ein bestimmtes Formularfeld beziehen. Entwickler:innen steht diese Möglichkeit in den Formulargenerator-Hooks zur Verfügung. #4898
MemberActivationMailEvent
Neu steht ein MemberActivationMailEvent
zur Verfügung. Er erlaubt es, der Aktivierungsmail weitere Simple Tokens zur Verfügung zu stellen, wie es bspw. unser Newsletter-Bundle seit jeher für ##channels
getan hat. Dank dieses neuen Events, steht diese Möglichkeit nun allen Entwickler:innen zur Verfügung. #5116
attributes_callback
Manchmal ist es im Backend ganz hilfreich, wenn man gewisse DCA-Definitionen wie bspw. etwa eval
-Anweisungen dynamisch machen könnte. Denkbar wäre etwa ein Feld, das abhängig von einem anderen Feld entweder mandatory
sein soll oder eben nicht. Dies musste bisher bspw. mit einem onload_callback
realisiert werden, welcher den Nachteil hat, nicht über den aktuellen Record zu verfügen. Neu steht deshalb ein dedizierter attributes_callback
zur Verfügung, mit dem man bequem die Widget-Attribute beeinflussen kann. #5673
Locale in Template::trans()
Dank diversen Änderungen in Symfony und an unserem Unterbau, ist es neu auch möglich, innerhalb von Templates für den trans()
-Helper, eine Locale zu übergeben.
Entsprechend ist sowas jetzt neu möglich:
en: <?= $this->trans('ERR.general') ?> de: <?= $this->trans('ERR.general', [], 'contao_default', 'de') ?> cs: <?= $this->trans('ERR.general', [], 'contao_default', 'cs') ?>
Zum Schluss
Vielen Dank, dass du bis hierher gelesen hast. Zum Schluss noch eine Bitte:
Es gibt viele Möglichkeiten, Contao zu supporten. Jede Unterstützung ist wichtig. Nur so kann Contao langfristig weiterentwickelt werden. Auch die zahlreichen Erweiterungen sind nicht selbstverständlich. Alle freuen sich über kleine Aufmerksamkeiten und neue Aufträge. Am Ende profitieren wir alle davon.
Du unterstützt Contao schon? Dann möchte ich dir an dieser Stelle herzlich Danke sagen.
Ich freue mich auf anregende Kommentare, mach gerne auch Vorschläge für Contao 5.2.
Und nun noch etwas: Christian von der Contao Academy hat ein fantastisches Video über die neues Features von Contao 5.1 gemacht.
Kommentare
Kommentar von Stefan Dahlmann |
Ich fiinde, dass Contao Core Team hat wieder eine Super Arbeit gamacht und hat viele sehr gute Neuerungen in Contao 5.1 eingebaut. Einen kleinen Wunsch hätte ich für Contao 5.2. Es wäre schön, wenn mann als Artikelelement einen einfachen "<div class"ce_container"></div>" Container bzw. Umschlags-Element erzeugen könnte, welche im Frontend im HTML-Code entsprechend ausgegeben wird. Es könnte so umgesetzt werden wie in der Erweiterung "grusch-it/contao-container-bundle" von Michael Gruschwitz, die aber nicht mit Contao 5.x funktionert. Bei Verwendung der Erweiterung ist es im Backend übersichtlicher als wenn man einfach HTML-Elemente verwendet. In der Artikelübersicht könnte dann sogar die CSS ID und/oder CSS Klasse angezeigt werden und auch die Einrückungen wie bei der o.g. Erweiterung.
Einen Kommentar schreiben