Contao-News

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

Contao 2.10.RC1 verfügbar

von Leo Feyer – Ankündigungen

Contao Version 2.10.RC1 ist verfügbar. Der Release Candidate enthält alle auf der Contao-Konferenz vor­ge­stel­lten neuen Funktionen wie z.B. HTML5- und CSS3-Unterstützung, globale Stylesheet-Variablen, Kom­pri­mierung aller Stylesheets und JavaScripts uvm. Zudem wurden etliche Fehler behoben und alle Plugins auf den neuesten Stand gebracht.

Das Request-Token-System

Mit der Version 2.10 wurde die fehleranfällige Referer-Prüfung gegen ein Request-Token-System aus­ge­tauscht. Formulare werden zukünftig nur noch verarbeitet, wenn sie ein gültiges Token mit übermitteln. Um diese Funktion auch in eigenen Erweiterungen zu nutzen, sind folgende Schritte notwendig:

  1. Suchen Sie in Ihren Dateien nach dem String FORM_SUBMIT, um alle Contao-Formulare zu finden.
  2. Fügen Sie nach dem Eingabefeld FORM_SUBMIT folgende Zeile ein:
<input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">

Beide Zeilen zusammen sollten danach wie folgt aussehen:

<input type="hidden" name="FORM_SUBMIT" value=" … ">
<input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">

Die Zeile im Backend sieht geringfügig anders aus:

<input type="hidden" name="REQUEST_TOKEN" value="<?php echo REQUEST_TOKEN; ?>">

Request-Tokens und Ajax

Request-Tokens werden auch für alle Ajax-Anfragen benötigt, die POST-Daten senden. Dabei liefert jede Ajax-Antwort ein neues Request-Token zurück. Um diese Daten zu verarbeiten, müssen Sie Ihre Ajax-Aufrufe geringfügig ändern:

  1. Verwenden Sie die Klasse Request.Contao anstatt der MooTools-Standardklasse.
  2. Übermitteln Sie die JavaScript-Variable REQUEST_TOKEN in Ihrer Anfrage.

Vorher:

new Request({
    onSuccess: function(txt) {
        $(element).set('html', txt);
    }
}).post({'action':' … '});

Nachher:

new Request.Contao({
    onSuccess: function(txt, json) {
        $(element).set('html', txt);
    }
}).post({'action':' … ', 'REQUEST_TOKEN':REQUEST_TOKEN});

Die Klasse Request.Contao kümmert sich dabei selbständig um die Entgegennahme und Aktualisierung des Request-Tokens. Das originale JSON-Objekt steht als optionales zweites Argument (bzw. drittes Argument bei der Klasse Request.Mixed) zur Verfügung.

Neue Template-Endungen

Statt der bisher üblichen Dateiendung .tpl haben Templates in Contao 2.10 entweder die Dateiendung .html5 für Templates im HTML5-Format oder .xhtml für Templates im XHTML-Format. Aus Gründen der Rück­wärts­kom­pa­ti­bi­li­tät werden .tpl-Dateien zunächst weiterhin unterstützt, gelten aber offiziell als veraltet.

Das Backend wurde komplett auf HTML5 umgestellt, so dass Sie alle Backend-Templates in Ihren eigenen Erweiterungen lediglich umbenennen müssen (Dateiendung .html5 statt .tpl). Im Frontend sollten Sie jedes Template duplizieren und einmal mit der Dateiendung .html5 und einmal mit der Dateiendung .xhtml bereitstellen. In beiden Fällen sollten Sie das Markup soweit notwendig anpassen.

TinyMCE in Subpaletten

In der neuen Version ist es erstmals möglich, TinyMCE-Eingabefelder in Subpaletten einzufügen, die auto­ma­tisch bei einer bestimmten Aktion per Ajax nachgeladen werden. Bislang wurden zwar die Eingabefelder nach­ge­laden, der Rich Text Editor wurde jedoch erst nach einem erneuten Laden der Seite angezeigt.

Anpassung der fe_page

Im Zuge des Updates hat sich auch die Standard-Seitenvorlage fe_page geändert. Die Änderungen beinhalten hauptsächlich das Einfügen der IE6-Warnung sowie den geänderten Cronjob-Trigger. Sofern Sie eine eigene "fe_"-Seitenvorlage verwenden, sollten Sie die Änderungen entsprechend nachvollziehen.

Eigene runonce.php-Dateien

Zukünftig soll es möglich sein, eine eigene runonce.php-Datei in dem config-Ordner einer Erweiterung zur Verfügung zu stellen, die automatisch nach deren Installation ausgeführt und anschließend gelöscht wird. Die Implementierung dieser Funktion ist jedoch im RC1 noch nicht in dieser Form enthalten. Die aktuelle Im­ple­men­tierung hat sich leider als zu unpraktikabel herausgestellt und wird in den nächsten Tagen ersetzt.

Alle Änderungen ansehen

Eine Übersicht über alle Änderungen erhalten Sie im Ticket-System oder im Changelog.

Download des Release bei github.com.

Alle News anzeigen

Kommentare

Einen Kommentar schreiben

Was ist die Summe aus 8 und 9?