Erster Kontakt mit Contao 4

von Christian Röckl

Mit der Veröffentlichung von Contao 4 kamen bei mir zum ersten Mal Zweifel auf, ob in Zukunft dieses CMS noch das Richtige für mich und meine Kunden ist. Die Einfachheit der Installation / Wartung und die schnelle Erstellung eines Prototypen waren damals die wichtigsten Entscheidungskriterien für das CMS Contao.

Nun geht Contao in der Version 4 einen neuen Weg. Das Entwicklerteam setzt auf das PHP Framework Symfony und auf den Paketmanager „Composer“. Somit sind die Anforderungen an den Webserver gestiegen und für die Installation und Wartung werden Konsolenbefehle benötigt. Eins war mir dabei gleich klar: mit der Konsole will ich mich nicht beschäftigen. Das ging auch einigen Frontendentwicklern so und schnell stand Contao 4 in der Kritik. Es entstand der Wunsch nach einer grafischen Installationsoberfläche.

Mit Contao 4.4 ging der Contao-Manager (eine grafische Oberfläche für die Installation) an den Start. Der Wunsch ging also in Erfüllung und ich fühlte mich verpflichtet, Contao 4.4 und den Manager ausgiebig zu testen.

Nach der Contao-Konferenz 2017 legte ich los. Als Testszenario diente die Umstellung der eigenen Website auf Contao 4

Eckdaten:

  • Provider: Alfahosting / Packet: Business XL (SSD)
  • CMS: Contao 3.5..
  • Theme: rocksolid oneo
  • Erweiterungen: alle Rocksolid, Notification Center, Tag-Cloud in C4 nicht mehr im Einsatz.

Installation Contao 4.4

Vorbereitung: 
Anlegen Datenbank, Verzeichnis + Unterverzeichnis Web, Subdomain → zeigt auf das Web-Verzeichnis. Die Date „contao-manager.phar.php“ ins Verzeichnis WEB (Root der Subdomain) kopiert und aufgerufen. (Contao 4 installieren und bestehende Installationen migrieren - Contao Nordtag 2017)

Nicht mehr nötig:

Zuerst scheiterte ich an dieser Stelle an den Pfadangaben zu PHP. Hier konnte mir aber der Support von Alfahosting weiterhelfen. Die Installation lief dann fehlerfrei durch. Jetzt mussten alle benötigten Erweiterungen installiert werden. Das ging leider erst mal nicht, da „memory-limit“ nicht passte, obwohl genügend zur Verfügung stand. Aber leider greifen die Einstellungen nicht für den Composer. Über den Support wurde ich auf einen Beitrag im Contao-Forum hingewiesen.

Hier die Lösung:
Die Pfadangabe zum Binar ändern auf:
/usr/bin/php7.1 -d memory_limit=2G -d max_execution_time=900

Jetzt lief alles durch.

Danach alle Files und Templates in das jeweilige Verzeichnis in der Contao 4 Installation kopiert. Die gesicherte Datenbank per PHP-MyAdmin eingespielt und das Installtool aufgerufen.

Meine Website konnte ich nun aufrufen. Grundeinstellungen mussten neu gesetzt und ein paar CSS-Daten angepasst werden. Die Website war jetzt soweit, dass ich diese eigentlich online stellen könnte. Das ging mir aber zu schnell, denn wie sieht es aus

  • mit Updates?
  • Wie komme ich mit der geänderten Backend-Oberfläche klar?
  • Wie ist die Performance vom Back- wie Frontend (PageSpeed)?

Die Testphase.

Also lies ich die Seite erst mal noch parallel zur 3.5 Version laufen. Ich hatte natürlich im Testzeitraum den doppelten Aufwand, denn alle neuen Inhalte mussten in dieser Zeit in beiden Systemen eingegeben werden. So hatte man aber auch gleich den direkten Vergleich der Backendoberfläche.

Was ist nun alles noch aufgekommen in der Testphase.

Frontend Performance: Hier muss die htaccess-Datei angepasst werden, da in der Version in Contao 4 die wichtigen Angaben nicht mehr integriert sind. Hier weitere Infos dazu.

CSS-Vorgaben in TinyMCE nicht mehr aufrufbar:
In Contao 4 hat der TinyMCE ein eigenes Template „be_tinyMCE.html5“. Das muss angepasst werden, um wieder die CSS-Vorgaben aus der tinymcs.css zu laden und im Editor aufzurufen. Anleitungen zur Anpassung findet man im Contao-Forum.

TinyMCE die Zweite:
Ich habe bei der Erstellung der Newsletter mit html-Vorlagen gearbeitet, die ich einfach in den TinyMCE lade. Dies nutze ich auch bei Kundenprojekten, wenn ein bestimmter Inhalt vorgegeben ist (z.B. technische Angaben, bei denen nur die Werte geändert werden müssen). Nun sehe ich über Datei die Vorlagen nicht mehr. Anpassung der „be_tinyMCE.html5“:

Diese Zeilen hinzufügen nach dem file_browser_callback Block:

[
  <?php echo Backend::getTinyTemplates(); ?>
    ],
    
*/und die Zeile "plugins" mit template ergänzen*/

plugins: 'autosave charmap code fullscreen image importcss link lists paste searchreplace tabfocus table template visualblocks',

Email SMTP Konfiguration:
Muss in der parameters.yml eingetragen werden.

mailer_transport: smtp
mailer_host: smtp. *****. *****
mailer_user: *****@ *****. *****
mailer_password: *****
mailer_port: 587
mailer_encryption: tls

Seitennamen mit Umlaute werden als Alias beibehalten. Da muss man gut aufpassen und diese per Hand ändern.

FAZIT: Alle Updates liefen problemlos. Ansonsten ist auch einiges im backend einfacher geworden und ich kann gut damit arbeiten, was mich auch dazu bewegt hat nun auf die Contao 4 Website umzustellen.

Nachtrag

Bei einem neuen Projekt mehrsprachig: Spachkürzel im ULR?
Dies wird  in der parameters.yml gemacht.

parameters:
prepend_locale: true

URL-Suffix .html in Contao 4 entfernen

/app/config/config.yml editieren und folgendes hinzufüge:

# Contao configuration 
contao: 
    url_suffix: '' 

Danach den Production Cache von Symfony löschen - das geht auch über den Contao Manager.

Zurück