Contao auf 2.10.0 updaten

Die Version 2.10.0 beinhaltet sehr viele Änderungen. Bei einem manuellen Update ist vor allem die Änderungen im Template-System zu beachten. Die Endung *.tpl sollte nicht mehr verwendet werden. An dessen Stelle treten die Endungen *.xhtml oder *.html5. Um eine bestehende Installation auf 2.10.0 zu aktualisieren, sollte man also den Contao-Core entpacken und in das Contao Verzeichnis kopieren (bestehende Dateien werden überschrieben). Anschließend kann man z. B. unter Windows mit del /S *.tpl alle alten Template-Dateien rekursiv löschen. Unter Linux heißt der Befehl rm -Rf *.tpl. Bitte diese Befehle mit Vorsicht verwenden, die Dateien werden rekursiv gelöscht. Also vorher unbedingt ein Backup machen.

Dieses Vorgehen sollte man nur wählen, wenn keine Erweiterungen verwendet werden (da diese noch mit den alten *.tpl Dateien arbeiten).

Natürlich muß anschließend die Datenbank mit dem Installationstool aktualisiert werden.

Ich hatte auch Probleme mit dem CSS-Framework. Die Hintergrundbilder wurden teilweise nicht korrekt eingebunden (Pfad im CSS war nicht korrekt). Nachdem ich im Backend die CSS-Definitionen nochmals abgespeichert hatte, wurden die Dateien neu generiert und der Fehler war behoben.

Wer eigene Extensions entwickelt kann leider nicht einfach seine Template-Dateien auf die Endung .xhtml umbenennen, da im Backend zwingend die Endung *.html5 erwartet wird. Um jetzt nicht alle Template-Dateien doppelt zu pflegen, hat man zwei Möglichkeiten:

  1. Im Modul wird die Methode generate() abgeleitet und im Fall, dass wir uns im Backend befinden, wird einfach ein Text ausgegeben:
    public function generate()
    {
      if (TL_MODE == 'BE')
        return 'Mein Modul';
      return parent::generate();
    }
  2. Man kann auch wahlweise das Format xhtml erzwingen.
    protected function compile()
    {
      // force xhtml format
      $this->Template->setFormat('xhtml');
      ...
    }

Außerdem muß man seine Formulare anpassen, da nun mit einem Request-Token-System gearbeitet wird. Wie die Formulare anzupassen sind, ist auf der Contao-Seite beschrieben.

Contao in verschiedenen Systemumgebungen

Wer in Contao eine Erweiterung programmiert macht das in der Regel auf einem lokalen Rechner. Sobald die Erweiterung einen halbwegs stabilen Stand erreicht hat, kann diese bereits auf einem Testsystem geprüft werden (ggf. auch durch externe Tester). Anschließend wird die Extension auf dem Live-System in Betrieb genommen. Die Extension hat somit verschiedene Umgebung durchlaufen: Development, Testing und Live. Um Contao in diesen Umgebungen zu betreiben hat sich für mich folgendes Vorgehen ergeben: Continue reading

Firefox 6 ist (fast) da…

Seit jemand herausgefunden hat, dass die Mozilla Foundation die zukünftigen Browser Versionen bereits ein paar Tage vorher auf Ihren FTP Servern veröffentlichen, berichten namhafte Online-Zeitschriften brav die Verfügbarkeit einer neuen Version. Für alle anderen: Ihr könnte euch das auch selbst ausrechnen, denn alle sechs Wochen soll ein neue Version erscheinen. Die Url ist bisher immer nach folgendem Schema aufgebaut: ftp://ftp.mozilla.org/pub/firefox/releases/6.0/. Wer also ein bis zwei Tage vor dem geplanten Termin vor dem Rechner sitzt und die Url der neuen Version prüft, kann möglicherweise schneller als alle anderen die Verfügbarkeit veröffentlichen. Unglaublich :-)

Datenbankmigration mit Liquibase

Wer kennt folgendes Problem nicht: Man entwickelt ein System, das eine Datenbank nutzt und entwickelt zwar wunderbar unter Versionskontrolle, jedoch läuft die Datenbankentwicklung “nebenher”. Das Datenbankschema wird direkt z. B. unter phpmyadmin entwickelt. Das funktioniert bei einem Entwickler möglicherweise noch ganz wunderbar, sobald aber mehrere daran arbeiten, verliert man schnell den Überblick. Für die Implementierung einer eigenen Lösung fehlt natürlich die Zeit und das verwendete Framework (z. B. Zend) hat natürlich von Haus aus auch keine Lösung parat. Mit dem Datenbankmigrationstool Liquibase kann man solchen Problemen aus dem Weg gehen. Continue reading

Contao VM (Virtuelle Maschine)

Kaum zu glauben, aber es gibt tatsächlich eine vorkonfigurierte VM für Contao. Auf der VM läuft ein Ubuntu und die Zend Server Community Edition. Als Virtualisierungsanwendung kommt VirtualBox zum Einsatz. Seit Dezember 2010 wurde die VM nicht mehr aktualisiert, aber eine Contao Installation ist ziemlich schnell auf den neusten Stand gebracht. Wer also den ca. 2,6 GB großen Download nicht scheut, der hat schnell eine funktionsfähige Entwicklungsumgebung.

Als Alternative bietet sich natürlich auch eine einfache XAMPP Installation an, auf der man Contao selbst installiert.

Verwendung von Zend_Tools

Eine kleine Übersicht:

Application erstellen:

(*nix Systemen): % zf create project newproject
(Windows): C:> zf.bat create project newproject

Im folgenden werden nur noch die Linux-Kommandos aufgeführt.

Layouts aktivieren

% zf enable layout

Klasse für Datentabelle:

% zf create db-table Person person

Model Klasse:

% zf create model Person
// Modulspezifisch
% zf create model Person MyModule

Controller Klasse:

% zf create controller Person

Formular Klasse:

% zf create form Person
// Modulspezifisch
% zf create form Person MyModule

Zusätzliche Aktion (action):

% zf create action detail Person

Datenbankadapter:

% zf configure dbadapter "adapter=Pdo_Mysql&
                          username=test&password=test&dbname=test"