Contao-News

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

Contao 4.9.0 verfügbar

von Leo Feyer – Ankündigungen

Contao Version 4.9.0 ist verfügbar. Das Release enthält neue Features wie z.B. einen Crawler, ein SERP-Widget, eine dynamische favicon.ico- und robots.txt-Verwaltung, Image Lazy-Loading, Backup-Codes und Trusted-Devices für die 2-Faktor-Authentifizierung, Zugriffskontrolle für Inhaltselemente und Formularfelder, eine neue Frontend-Preview, einen universellen Table-Picker und einiges mehr.

Etliche der neuen Funktionen wurden bereits auf der Keynote der Contao-Konferenz 2019 vorgestellt, die ihr euch auf YouTube ansehen könnt. Auch die Zusammenfassung von Florian Werner von der Agentur dreibein ist lesenswert.

Crawler

Der Crawler erlaubt sowohl das Aufbauen des Suchindexes als auch das Auffinden defekter Links. Er kann wahlweise im Backend oder auf der Kommandozeile ausgeführt werden.

Ressourcen: #985, #1057, #1223, YouTube-Video

SERP-Widget

Das SERP-Widget stellt die Metadaten einer Seite (Titel, Beschreibung, URL) annähernd so dar, wie die Seite in den Google Suchergebnissen aussehen wird. Hierbei ist zu beachten, dass die Google-Logik für die Anzeige der Suchergebnisse komplex und individuell ist, so dass das die tatsächliche Darstellung von der Vorschau des Widgets abweichen kann.

Das Widget funktioniert auch dann, wenn ein Redakteur nicht auf alle Metadaten-Felder Zugriff hat, und kann bei Bedarf in den Benutzereinstellungen komplett deaktiviert werden, indem ihr das Feld einfach nicht freischaltet.

Ressourcen: #1092, #1169, #1323, YouTube-Video

favicon.ico- und robots.txt-Verwaltung

Die Verwaltung der Dateien favicon.ico und robots.txt ist in Contao 4.9 dynamisch in der Seitenstruktur möglich. Die entsprechenden Einstellungen können pro Domain festgelegt werden und werden jeweils in der Root-Seite bearbeitet, die als Sprachen-Fallback definiert ist.

Damit das Feature funktioniert, müssen eventuell bestehende favicon.ico- und robots.txt-Dateien nach dem Update gelöscht werden!

Ressourcen: #717, YouTube-Video

Image-Lazy-Loading

Das Image-Lazy-Loading kann in den Bildgrößen aktiviert werden und sorgt dafür, dass das loading="lazy"-Attribut im HTML-Quelltext gesetzt wird. Browser, die das Attribut unterstützen (derzeit Chrome ab Version 76 und Firefox ab Version 75), entscheiden dann anhand individueller Logik, ob ein Bild sofort geladen wird oder erst, wenn es in den Viewport des Besuchers gescrollt wird.

Ressourcen: #703

Frontend-Preview

Die neue Preview-Bar ist nicht mehr Teil eines Framesets, sondern wird direkt in das HTML-Markup der jeweiligen Seite injiziert. Dadurch sind im Browser sowohl der Titel als auch die URL der Seite direkt sichtbar und müssen nicht mehr in der Preview-Bar angezeigt werden. Außerdem entfällt dadurch die "Neu laden"-Schaltfläche, da die Seiten jetzt normal mittels F5 neu geladen werden können.

Ressourcen: #989, YouTube-Video

Backup-Codes und Trusted-Devices

Die 2-Faktor-Authentifizierung wurde um Backup-Codes und Trusted-Devices erweitert. Mit einem Backup-Code könnt ihr euch anstatt des Bestätigungscodes anmelden, falls ihr keinen Zugriff auf euer 2FA-Gerät habt oder der Bestätigungscode nicht mehr funktioniert. Ein Trusted-Device ist ein vertrauenswürdiges Gerät, auf dem ihr trotz aktiver 2-Faktor-Authentifizierung keinen Bestätigungscode eingeben müsst.

Ein vertrauenswürdiges Gerät muss in regelmäßigen Abständen (ca. alle 60 Tage) erneut durch die Eingabe eines Bestätigungscodes bestätigt werden.

Ressourcen: #559, #1184

Zugriffskontrolle für Inhaltselemente und Formularfelder

In Contao 4.9 könnt ihr pro Benutzer bzw. Benutzergruppe festlegen, welche Inhaltselemente und Formularfelder eure Redakteure verwenden dürfen. Diese Funktionalität wurde bisher von der Erweiterung "ce_access" bereitgestellt und ist nun in den Core integriert.

Ressourcen: #705, YouTube-Video

Universeller Table-Picker

Bezogene Artikel und Inhaltselemente könnt ihr in Contao 4.9 über den neuen Table-Picker auswählen anstatt in einem Dropdown-Menü, das vor allem bei Inhaltselementen sehr unübersichtlich war. Außerdem entfällt dadurch die Beschränkung, dass Inhaltselemente z.B. aus einer News nur in anderen News referenziert werden konnten.

Ressourcen: #714

Range-Slider

Das neue Formularfeld "Range-Slider" ermöglicht das Hinzufügen eines Sliders zur Auswahl eines Wertes oder eines Wertebereichs innerhalb eines spezifizierten Minimal- und Maximalwertes.

Ressourcen: #521, YouTube-Video

Migrations

Contao 4.9 enthält ein neues Migrations-Framework, das mittelfristig das Konzept der runonce.php-Dateien ersetzen wird. Migrations können entweder wie bisher im Installtool ausgeführt werden oder neu auf der Kommandozeile mittels des contao:migrate-Commands. Somit könnt ihr – je nach Workflow – eure Contao-Installation ohne den Aufruf des Installtools aktualisieren.

Ressourcen: #709, YouTube-Video

Cron-Service

Der Cron-Service ermöglicht es, Cronjobs im DI-Container als solche zu taggen und wahlweise im Web- oder CLI-Kontext auszuführen.

namespace App\Cron;

use Contao\CoreBundle\ServiceAnnotation\Cron;
use Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface;

class MyCron implements ServiceAnnotationInterface
{
    /**
     * @CronJob("minutely", priority=-1)
     */
    public function onMinutely(): void
    {
    }

    /**
     * @CronJob("hourly", priority=32, cli_only=true)
     */
    public function onHourly(): void
    {
    }
}

Ressourcen: #1098, Dokumentation

Backend-Navigation

Im Backend nutzen wir jetzt sowohl für die Top-Navigation als auch für die Hauptnavigation das KnpMenuBundle, das ihr beliebig über eigene Event-Listener erweitern könnt.

Ressourcen: #1101, #860

Service-Autoloading

Um den Aufwand bei der manuellen Registrierung von Services im Container zu minimieren, werden Services im Ordner src/ in Contao 4.9 automatisch registriert. Das gilt auch für die Datei services.yml, die bisher manuell geladen werden musste.

Ressourcen: #1165

.yml und .yaml

Ab Contao 4.9 unterstützen wir sowohl die Dateiendung .yml als auch .yaml für YAML-Dateien. Die offizielle Dateiendung ist .yaml.

@internal

Gemäß des Contao BC-Versprechens nehmen wir inkompatible Änderungen an der Public API von Contao nur in neuen Major-Versionen vor. Von diesem BC-Versprechen sind jedoch einige Klassen ausgenommen, die wir in Contao 4.9 zusätzlich mittels @internal markiert haben, damit euch eure IDE bereits darauf hinweist, wenn ihr eine solche verwendet.

Environment-Variablen

Ab Contao 4.9 unterstützen wir die in Symfony 4 standardmäßig verwendeten Environment-Variablen, die ihr alternativ zu eurer parameters.yml in den Server-Einstellungen oder in einer .env- bzw. .env.local.php-Datei hinterlegen könnt.

Und einiges mehr

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

Symfony-Kompatibilität

Contao 4.9 LTS ist mit Symfony 4.4 LTS kompatibel.

Siehe auch: Tickets | Versionsvergleich | Changelog

Alle News anzeigen

Kommentare

Kommentar von Werner |

1.000 Dank!
Um es mal auf österreichisch auszudrücken:
Wodklasse!!!

Kommentar von Sam |

Einen super-grossen Dank an alle die daran beteiligt sind!
Contao rocks!

Kommentar von Christian Michael |

Great new Features! Contao rocks!

Kommentar von Peter |

Dream comes true :)

Kommentar von Jörg |

Contao rocks! Ein großes Lob auch an die Developer Dokumentation!!!

Kommentar von Manfred Gipp |

Immer wieder hilfreich diese Informationen zentral zu lesen. Vielen Dank dafür.

Einen Kommentar schreiben

Bitte rechnen Sie 6 plus 2.