Contao-News

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

Contao 4.7.0 verfügbar

von Leo Feyer – Ankündigungen

Contao Version 4.7.0 ist verfügbar. Das Release enthält neue Features wie z.B. native Fonts im Backend, Drag und Drop im Template-Editor, einen Opt-In-Service, eine verbesserte Frontend-Preview-Bar, weitere SEO-Einstellungen für News und Events und einiges mehr.

Native Fonts im Backend #98

In Contao 4.7 kommt im Backend kein Webfont mehr zum Einsatz, sondern die jeweilige Systemschrift des verwendeten Betriebsystems. Dadurch werden zum einen Anzeigefehler im Zusammenhang mit der Schriftenglättung behoben, und zum anderen verbessert sich die optische Integration von Contao in das System.

Drag und Drop im Template-Editor #223

Wie zuvor bereits im Dateimanager, hat Martin in Contao 4.7 Drag und Drop auch im Template-Editor implementiert. Templates können nun durch Ziehen in einen Ordner verschoben werden.

Opt-In-Service #196

Um Double Opt-In-Vorgänge besser nachvollziehen zu können, werden diese in Contao 4.7 zentral aufgelistet und für die Dauer der gesetzlichen Nachweispflicht gespeichert. Der Opt-In-Service kann auch in eigenen Bundles genutzt werden.

Frontend-Preview-Bar #1640

Yanick hat die Frontend-Preview-Bar in Contao 4.7 erweitert, so dass der Titel und die URL der jeweiligen Seite angezeigt werden.

Nachrichtenleser im Listenmodul #39

Um analog zum Modul "Nachrichtenarchiv" auch im Modul "Nachrichtenliste" einen Nachrichtenleser verknüpfen zu können, hat Fritz hat das Modul "Nachrichtenliste" in Contao 4.7 entsprechend angepasst.

SEO-Einstellungen für News und Events #161

Dank Patrick Froch's Einsatz auf dem Contao Camp in Leipzig, könnt ihr in Contao 4.7 den Seitentitel und die Seitenbeschreibung pro News bzw. Event überschreiben.

2FA-Einrichtung mittels Text-Schlüssel #86

Für den Fall, dass jemand den QR-Code bei der Einrichtung der 2-Faktor-Authentifizierung nicht scannen kann, hat Dave die Möglichkeit nachgerüstet, die Einrichtung mit einem Text-Schlüssel abzuschließen.

Automatische HTTPS-Umleitung #283

Dank Andreas' Umbau des Routings auf dem Symfony CMF-Router, werden Besucher, die die Webseite per HTTP aufrufen, in Contao 4.7 automatisch auf HTTPS weitergeleitet, wenn die entsprechende Option in den Seiteneinstellungen aktiviert ist.

Sprachauswahl im Meta-Editor #6254

Im Meta-Editor in der Dateiverwaltung werden zukünftig alle in der Seitenstruktur angelegten Sprachen automatisch aktiviert und müssen nicht mehr einzeln hinzugefügt werden.

Wiederholte Events #175

Der Text bei der Ausgabe eines wiederholten Events im Frontend wurde angepasst, damit klarer wird, in welchen Abständen sich das Event wiederholt und wann es das nächste Mal stattfindet.

Verschlankung der Systemeinstellungen #203

Wie auf dem Contao-Camp in Leipzig besprochen, sollen die Systemeinstellungen im Backend sukzessive verschlankt werden. In Contao 4.7 wurden im ersten Schritt folgende Einstellungen entfernt:

  • Skripte komprimieren: entfallen
  • Unterstützte Templateformate: entfallen, es wird nur noch .html5 unterstützt
  • Zeichensatz: kein Eingabefeld mehr, kann jedoch weiterhin in der Datei config.yml oder localconfig.php geändert werden
  • Speicherzeiten: kein Eingabefeld mehr, kann jedoch weiterhin in der Datei config.yml oder localconfig.php geändert werden
  • SSL-Proxy-Domain: kein Eingabefeld mehr, kann jedoch weiterhin in der Datei config.yml oder localconfig.php geändert werden
  • Datei-URL/Assets-URL: im Backend entfallen, in der Seitenstruktur weiterhin vorhanden
  • Titel der Webseite: im Backend entfallen, in der Seitenstruktur weiterhin vorhanden
  • Editierbare Dateien: kein Eingabefeld mehr, kann jedoch weiterhin in der Datei config.yml oder localconfig.php geändert werden
  • Auto_item aktivieren: kein Eingabefeld mehr, kann jedoch weiterhin in der Datei config.yml oder localconfig.php geändert werden

Nicht zu synchronisierende Ordner #203

Die Möglichkeit, einen Ordner von der Synchronisation mit der Datenbank auszunehmen, wurde in Contao 4.7 von den Systemeinstellungen in den Dateimanager verschoben.

Markup komprimieren #203

Die Möglichkeit, das HTML-Markup der Webseite im Frontend zu komprimieren, wurde in Contao 4.7 von den Systemeinstellungen in das Seitenlayout verschoben.

Downloads im Browser anzeigen #20

Dennis Patzer hat die Download-Elemente erweitert, so dass Downloads in Contao 4.7 wahlweise den "Speichern unter…"-Dialog öffnen oder direkt im Browser angezeigt werden.

Kommentare von Mitgliedern #7

Dank Moritz Vondano's Anpassungen im Comments-Bundle, können Kommentare in Contao 4.7 mit Mitgliedern verknüpft werden.

Warnung bei deaktivierten Cookies #134

Contao sichert Formulare durch eine Technik namens "Double Submit Cookie" gegen CSRF-Angriffe ab, daher können Formulare nicht abgeschickt werden, wenn Cookies im Browser deaktiviert wurden. Das neue Template js_nocookie.html5, das im Seitenlayout aktiviert werden kann, gibt in diesem Fall eine entsprechende Warnung in jedem Formular aus.

Warnung bei Zugriff auf den Template-Editor #224

Da Contao-Templates PHP-Dateien sind, hat jeder Benutzer mit Zugriff auf den Template-Editor implizit die volle Kontrolle über das System. Contao 4.7 weist den Administrator daher in den Benutzereinstellungen darauf hin, wenn ein regulärer Benutzer auf den Template-Editor zugreifen darf.

Artikel als PDF exportieren #65

Da der PDF-Export von Artikeln nicht auf jeder Contao-Webseite gebraucht wird, wurde die Funktionalität in ein separates Bundle verschoben. Contao 4.7 enthält also standardmäßig kein TCPDF mehr, es kann aber jederzeit wieder hinzugefügt werden.

Slug-Service #222

Martin hat die Integration seines Slug-Generators weiter ausgebaut und einen Slug-Service hinzugefügt, der das automatische Generieren von Aliasen weiter vereinfacht.

$alias = $container->get('contao.slug')->generate($pageTitle, $pageId);

onshow_callback #235

Kamil Kuzminski hat einen neuen onshow_callback im DCA hinzugefügt, der ausgeführt wird, wenn die Detailansicht eines Datensatzes aufgerufen wird.

contao.generate_symlinks-Event

Um eigene Logik bei der Erstellung von Symlinks ausführen zu können, wurde in Contao 4.7 das contao.generate_symlinks-Event hinzugefügt.

Security-Voter für Backend-Benutzer #122

Andreas hat einen Security-Voter hinzugefügt, der die Einstellungen eines Backend-Benutzers ausliest.

// User has access to form ID 5
$authorizationChecker->isGranted('contao_user.forms', 5);

// User is allowed to access field "published" of table "tl_page"
$authorizationChecker->isGranted('contao_user.alexf', 'tl_page::published');

// Check access to folder
$authorizationChecker->isGranted('contao_user.filemounts', '/files/foo/bar');

Services als DCA-Callbacks taggen #39

Analog zum Taggen von Services als Hooks, hat Andreas das Taggen von Services als DCA-Callbacks in Contao 4.7 hinzugefügt.

Models mit Arrays initialisieren #121

Dank Andreas können Models in Contao 4.7 wahlweise mit einem Datenbank-Result oder einem Array initialisiert werden.

$data = [
    'id' => 2,
    'name' => 'Theo Test',
];

$model = new UserModel($data);

Ordner schützen #1601

Moritz Vondano hat die API zum Schützen von Ordnern um eine isUnprotected()-Methode erweitert.

$folder = new Contao\Folder('/path/to/the/folder');

if ($folder->isUnprotected()) {
    // the folder contains a .public file and will be available via HTTP
}

Routen im DCA verwenden #116

Andreas hat in Contao 4.7 die Möglichkeit geschaffen, Routen in DCA-Attributen zu verwenden.

$GLOBALS['TL_DCA']['tl_table']['list']['operations']['foo'] => [
    'label' => &$GLOBALS['TL_LANG']['tl_table']['foo'],
//  'href'  => 'key=foo',
    'route' => 'my_bundle.custom_route',
    'icon'  => 'foo.svg'
];

PaletteManipulator::removeField() #1668

David Molineus hat den Palette-Manipulator um eine removeField()-Methode ergänzt, mit der sich Felder aus Paletten entfernen lassen.

PaletteManipulator::create()
    ->removeField('published', 'publish_legend')
    ->addField('published', 'title_legend', PaletteManipulator::POSITION_APPEND)
    ->applyToPalette('default', 'tl_news')
;

Vorherige und zukünftige Termine #175

Mit den neu hinzugefügten Methoden getPastDates() und getUpcomingDates() lassen sich bei wiederholten Events im Template die vorherigen und die zukünftigen Termine abrufen.

ContaoFrameworkInterface #276

Das Interface ContaoFrameworkInterface ist ab Contao 4.7 deprecated und sollte nicht mehr verwendet werden. Stattdessen sollte die konkrete Klasse ContaoFramework verwendet werden.

class MyService
{
    /**
     * @var ContaoFramework
     */
    private $framework;

    public function __construct(ContaoFramework $framework)
    {
        $this->framework = $framework;
    }
}

Und einiges mehr

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

Symfony-Kompatibilität

Contao 4.7 ist mit folgenden Symfony-Versionen kompatibel: 3.4, 4.1, 4.2

Hinweise zum Update

Wie bereits oben erwähnt, ist TCPDF ab Contao 4.7 nicht mehr Teil der Core-Distribution. Wenn ihr also die Funktion "Artikel als PDF exportieren" benötigt, müsst ihr das Paket contao/tcpdf-bundle installieren; entweder im Contao Manager oder auf der Kommandozeile mittels composer require contao/tcpdf-bundle.

Siehe auch: Tickets | Versionsvergleich | Changelog

Alle News anzeigen

Kommentare

Kommentar von Christian |

Wow! Das sind wieder mal viele neue Features.
Vielen Dank an das gesamte Team und alle die tatkräftig programmiert und getestet haben.

Kommentar von Nils |

Danke und weiter so.

Kommentar von Stefan D. |

Wie immer tolle Neuigkeiten und schöne neue Features bei größeren Contao Versionssprüngen. Da muss ich das Contao Core Team wirklich mal loben.

Kommentar von Robert Siegel |

Wahnsinn was Ihr da jedesmal voranbringt. Und ich freue mich zu sehen wieviel Wertschätzung in Eurer Arbeit mitgeht, einerseits endest Du so oft mit einem Danke Leo und dann räumst Du noch den Code auf, toll!
Ein herzliches Dankeschön an alle Beteiligten die dieses großartige CMS wachsen lassen!

Einen Kommentar schreiben

Bitte addieren Sie 5 und 4.