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

#5425

Sortierung aufsteigend und absteigend in Listen

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

Neues Symbol für geschützte Artikel

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

Das Dashboard warnt, wenn noch keine Admin-E-Mail in den System-Einstellungen eingetragen wurde.

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

Jedes Formular in Contao kann nun per Ajax abgesendet werden.

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

Seiten-URL und Seiten-ID im System Log.

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') ?>

#5371

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.

Alle News anzeigen

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

Was ist die Summe aus 9 und 3?