Contao-News

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

Update auf Contao 3 (RC1)

von Leo Feyer

Letzte Woche haben wir es getan: contao.org läuft jetzt auf Contao 3.0.RC1. Die Umstellung erforderte erwartungsgemäß ein wenig Nacharbeit, machte aber insgesamt weniger Probleme als gedacht.

Testinstallation

Ich habe contao.org so organisiert, dass alle Installations-unabhängigen Dateien außerhalb des Stamm­ver­zeich­nisses liegen und mittels Symlinks verlinkt werden. Dieses Setup erlaubt es mir, eine Testinstallation parallel zum Live-System anzulegen und alle Ressourcen einzubinden, ohne sie kopieren zu müssen. Dem­ent­sprechend schnell ging die Installation von Contao 3.

Zur Sicherheit habe ich jedoch mit einer Kopie der Datenbank gearbeitet, was leider nicht verhindern konnte, dass der TRUNCATE-Befehl einmal doch das Live-System erwischt hat :(

Version 3-Update

Während des Version 3-Updates, das das Installtool weitestgehend selbständig durchführt, sind ein paar klei­ne­re Bugs aufgetaucht, die ich umgehend im Git-Zweig release/3.0.0 behoben habe. Danach lief das Ein­le­sen der Dateien für das Datenbank-gestützte Dateisystem und die anschließende Umstellung der Datenbank-In­hal­te ohne Probleme. Auch die Informationen aus den meta.txt-Dateien wurden korrekt übernommen.

Nacharbeit Teil 1

Nach dem Update der Datenbank musste ich wie erwartet die Reihenfolge der Inhaltselemente "Bildergalerie" und "Downloads" wiederherstellen. Die Reihenfolge kann nicht automatisch aus der meta.txt übernommen wer­den, daher sollte man hierfür Zeit beim Update einplanen. (Eventuell findet auch noch jemand eine Mög­lich­keit, den Vorgang zu automatisieren.)

Ein unerwartetes Problem

Nach dem Update wurden auf einmal eine Menge Icons und Formattierungen nicht mehr angezeigt, was sich mir nicht sofort erschlossen hat. Schuld daran ist die geänderte .htaccess-Strategie in Contao 3. Während der System-Ordner in Contao 2 prinzipiell zugänglich war und die einzelnen Unterordner durch .htaccess-Dateien geschützt wurden, ist es in Contao 3 genau anders herum: Der System-Ordner ist standardmäßig nicht zu­gäng­lich und die einzelnen Ordner müssen explizit freigegeben werden.

Um diesen unnötigen Problemen beim Update vorzubeugen, habe ich das Installtool um eine Routine ergänzt, die den Ordner html in euren Modulen automatisch mit einer .htaccess-Datei versieht, sofern dieser existiert und noch keine .htaccess-Datei hat.

Nacharbeit Teil 2

Ebenfalls bewusst war mir, dass sich die Templates der Elemente "Bildergalerie" und "Navigationspfad" ge­än­dert hatten und jetzt als ungeordnete Listen (UL) ausgegeben werden. Diese Änderungen musste ich im CSS-Code nachvollziehen:

/* Galerie */
.ce_gallery ul {
  overflow:hidden;
}
.ce_gallery li {
  float:left;
  padding:0 3px 12px;
}

/* Navigationspfad */
.mod_breadcrumb ul {
  overflow:hidden;
  margin:0;
  padding:0;
  list-style-type:none;
}
.mod_breadcrumb li {
  float:left;
}
.mod_breadcrumb li:after {
  margin-right:3px;
  padding-left:1px;
  content:" > ";
}
.mod_breadcrumb li.active:after {
  display:none;
}

Autoload-Creator

Natürlich kommen auch auf contao.org einige Third-Party-Erweiterungen zum Einsatz, allen voran das Helpdesk in einer damals angepassten und seitdem nicht mehr aktualisierten Version. Dank des Autoload-Creators (Entwickler-Tools) konnte ich die entsprechende autoload.php-Datei auf Knopfdruck anlegen und danach – ich konnte es selbst kaum glauben – lief das Forum unter Contao 3, ohne dass ich auch nur eine einzige PHP-Datei anpassen musste.

Die einzige notwendige "Anpassung" war das Verschieben der Datei DC_Helpdesk.php aus dem Ordner system/drivers in den Ordner system/modules/helpdesk, da es den Drivers-Ordner in Contao 3 nicht mehr gibt. Gemäß des stärkeren Fokus auf die Modul-Ordner, liegen die Core-Driver jetzt im Core-Ordner.

Auch die anderen Erweiterungen konnte ich dank Autoload-Creator zur Mitarbeit überreden. Trotz aller Euphorie gebe ich ganz offen zu, dass das nicht mit allen Extensions funktionieren wird. Gerade komplexe Module wie z.B. der Katalog werden wohl mehr Anpassungen bedürfen, als nur einer Autoload-Datei.

Fleißaufgabe

Das eigentliche Contao 3-Update war damit bereits abgeschlossen und die Webseite lief. Ich wollte jedoch noch eine Kleinigkeit ändern: den Ordner tl_files in files umbenennen.

Tristan hatte dazu bereits ein kleines Skript geschrieben und als Gist veröffentlicht. Ich habe dieses minimal anpassen müssen, damit es lief: https://gist.github.com/3304014

Das Skript ist gänzlich unabhängig von Contao, daher hat es auch keinen Zugriff auf die Datenbank-Zu­gangs­da­ten aus der lokalen Konfigurationsdatei. Diese müsst ihr selbst im Skript ergänzen.

Auf die Plätze, fertig, los

Nach dem erfolgreichen Testlauf und dem Beheben der aufgetauchten Bugs, war es nun Zeit für das Update des Live-Systems. Voher habe ich noch einmal ein Datenbank-Backup angelegt.

Anschließend wurde die Domain auf die Wartungsseite geroutet und contao.org war für 9 Minuten offline. In diesen 9 Minuten habe ich das Datenbank-Update laufen lassen und Tristan's Skript für die Umbenennung des tl_files-Ordners ausgeführt. Danach habe ich noch kurz den Ordner der Testinstallation umbenannt und die Symlinks überprüft, bevor ich das Domainrouting wiederhergestellt habe.

Die Template- und CSS-Änderungen habe ich erst danach vorgenommen, als die Seite schon wieder live war. Es ging mir vor allem darum, dass Extension Repository nur so kurz wie nötig vom Netz zu nehmen, und we­ni­ger darum, dass die Seite sofort perfekt aussieht.

Fazit

Das Contao 3-Update ging für ein Major-Release erstaunlich problemlos über die Bühne und die Arbeit mit Contao 3 macht richtig Spaß! Die News-Erweiterung unterstützt ja jetzt Inhaltselemente, daher werden die Code-Beispiele (siehe oben) schön formatiert ausgeben. Und die Geschwindigkeit von contao.org hat noch mal deutlich zugelegt, was sich sowohl im Backend, als auch im Frontend bemerkbar macht.

Zurück zur News-Übersicht.

Einen Kommentar schreiben

Kommentar von Christian |

Hallo Leo, toll dass es klappt und danke für die ausführlichen Tipps. Ich bin gespannt aufs Release :-)

Kommentar von Andreas K. |

Hallo Leo, super Sache! Freue mich auch auf's Release - nur irgendwie scheint der RSS-Feed (http://contao.org/share/news-de.xml) seit dem Update nicht mehr mit Google-Currents zu funktionieren ... :-(

Antwort von Leo Feyer

Ich habe mir eben die iPhone-App heruntergeladen und konnte den Feed abonnieren.

Kommentar von Anton Meier |

Hallo Leo!

Contao 3 ist großartig! Das Responsive Grid Sytelsheet ist mein persönliches Lieblings-Feature. Auch die Geschwindigkeit ist bemerkenswert – das Arbeiten mit Contao macht mehr Spaß.

Gibt es schon nähere Informatioen bezüglich Release-Datum?

Bücher und Videos