Contao-News

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

Contao 3.2.beta1 verfügbar

von Leo Feyer

Contao Version 3.2.beta1 ist verfügbar. Verwenden Sie Beta-Versionen nicht für produktive Webseiten! Laden Sie das Release herunter, um zu prüfen, ob Ihre Webseite oder Erweiterung angepasst werden muss.

Die Version 3.2 wird uns als neues LTS-Release 18 Monate lang begleiten, daher stand die Entwicklung ganz unter dem Motto "Evolution statt Revolution". Es ging uns vor allem darum, die neuen Features in Contao 3 zu stabilisieren und zu vervollständigen, und weniger darum, möglichst 200 neue Funktionen einzubauen.

Die neuen Funktionen, die trotzdem hinzugekommen sind, beispielsweise die Nutzung von UUIDs für Dateien, waren allesamt sehr umfangreich und nicht trivial zu implementieren. Dementsprechend wichtig ist es, dass die beiden Pre-Releases (beta1 und RC1) ausgiebig getestet werden.

Nachfolgend sind einige der Highlights der neuen Version genannt. Eine vollständige Liste finden Sie im Changelog bzw. in den geschlossenen Tickets des Release (siehe die Links am Ende der Ankündigung).

Unique IDs für Dateien

Das datenbankgestützte Dateisystem, das in Contao 3 eingeführt wurde, speichert Dateiinformationen in der Datenbank und referenziert die Einträge über deren ID. Dies kann jedoch zu Problemen mit Tools wie z.B. syncCto führen, wenn bestimmte IDs auf dem lokalen Rechner und auf dem Server existieren, jeweils aber verschiedene Dateien referenzieren.

Um dieses Problem zu beheben, wurde das System in Contao 3.2 auf die Nutzung sogenannter UUIDs (Universally Unique Identifier) umgestellt. Eine UUID ist systemübergreifend eindeutig und sieht zum Beispiel so aus: bb643d42-0026-ba97-11e3-ccd717221c8a

In der Regel kommen Anwender nicht mit der UUID in Berührung, da Dateien in Contao mit dem Dateiwähler selektiert werden. Die einzige Ausnahme ist das Inserttag "file", das ab sofort auch UUIDs unterstützt:

<img src="[{]file::bb643d42-0026-ba97-11e3-ccd717221c8a[}]" alt="">

Das Inserttag wird durch den Pfad zu der referenzierten Datei ersetzt.

Closures in DCAs und Templates

Closures sind anonyme Funktionen, die in PHP 5.3 eingeführt wurden. In Contao 3.2 können sie anstatt der üblichen Callbacks in Data Container Arrays sowie in Templates benutzt werden.

// Definition des Callbacks
$GLOBALS['TL_DCA']['tl_page'] = array
(
	'list' => array
	(
		'label' => array
		(
			'label_callback' => array('tl_page', 'addIcon')
		)
	)
);

// Definition der Klasse und Methode
class tl_page extends Backend
{
	public function addIcon($params)
	{
		return Backend::addPageIcon($params);
	}
}

Alternativ dazu können an dieser Stelle Closures verwendet werden:

// Definition des Callbacks
$GLOBALS['TL_DCA']['tl_page'] = array
(
	'list' => array
	(
		'label' => array
		(
			'label_callback' => function($params)
			{
				return Backend::addPageIcon($params);
			}
		)
	)
);

Nach demselben Prinzip lassen sich Closures auch zu Templates hinzufügen:

// Zuweisung zum Template
$objTemplate = new FrontendTemplate('ce_test');
$objTemplate->sum = function($a, $b) { return $a + $b; };
$objTemplate->output();

// Verwendung innerhalb des Templates
<?php echo $this->sum(3, 5); ?>

Proxyserver-Unterstützung

Die Unterstützung für Proxyserver wurde in Contao 3.2 deutlich verbessert.

  • In den Backend-Einstellungen lässt sich nun eine Liste vertrauenswürdiger Proxyserver-IPs angeben, um aus einer eventuell vorhandenen Liste von IP-Adressen die des Besuchers herausfiltern zu können.
  • Wird ein SSL-Proxyserver verwendet und dessen Domain in den Einstellungen gesetzt, erkennt Contao dies anhand der Request-Header und passt die URL-Generierung entsprechend an.

Falls Sie das $_SERVER-Array anpassen mussten, um Contao mit einem Proxyserver zu betreiben, sollten Sie versuchen, ob es nach dem Update auch ohne diese Anpassung funktioniert.

Einfacheres Debuggen

Ab sofort zeigt Contao Fehlermeldungen immer an, sobald ein Benutzer im Installtool angemeldet ist. Dies gilt auch dann, wenn die Einstellung "Fehler anzeigen" deaktiviert ist und die generische Fehler-Screen anstatt der eigentlichen Fehlermeldung ausgegeben wird.

system/docs/UPGRADE.md

In der neu eingeführten Datei system/docs/UPGRADE.md werden API-Änderungen dokumentiert, die nicht rückwärtskompatibel sind. Solche API-Änderungen sind grundsätzlich nur bei Major-Versionen zulässig, lassen sich aber auch bei Minor-Versionen nicht immer vermeiden. Im aktuellen Fall wurde der "buttons_callback" um eine Reihe wichtiger Funktionen erweitert, die jedoch eine API-Änderung beinhalten.

Google+ Profil-Verknüpfung

Backend-Benutzer können in Contao 3.2 ihre Google+ Profil-ID hinterlegen, damit von ihnen verfasste Beiträge (z.B. Nachrichten und FAQs) automatisch mit ihrem Google+-Profil verlinkt werden. Dies bewirkt, dass Google in den Suchergebnissen das Profilbild des Autors anzeigt (Freigabe in Google+ erforderlich).

Groß-/Kleinschreibung bei Benutzernamen

Bislang waren Benutzernamen in Contao aufgrund der voreingestellten Datenbank-Kollation unabhängig von der Groß-/Kleinschreibung. Die Anmeldung des Benutzers "k.jones" war auch als "K.JONES" oder "K.joNEs" möglich. In der neuen Version wurde dies geändert, so dass "k.jones" und "K.JONES" theoretisch zwei verschiedene Benutzer sein könnten.

Zurück zur News-Übersicht.

Einen Kommentar schreiben

Was ist die Summe aus 4 und 5?

Bücher und Videos