28. August 2008
Nun hat es zwar etwas länger gedauert, trotzdem habe ich nicht vergessen, dass ich noch etwas zur technischen Ausstattung der Seite verraten wollte. Das möchte ich hiermit nachholen. Im letzten Teil der kleinen Relaunchserie widme ich mich dem Herz der Seite, dem verwendeten Content-Management-System.
ExpressionEngine, das etwas andere CMS
Die von Ellislab entwickelte ExpressionEngine erblickte 2005 als offizieller Nachfolger des Blogsystems pMachine das Licht der Welt und erfreut sich seitdem – vor allem im englischen Sprachraum – großer Beliebtheit. Die Besonderheit der ExpressionEngine liegt in Ihrer extremen Flexibilität im Umgang mit nahezu beliebigen Datenstrukturen. Webseiten im herkömmlichen Sinne (also quasi statische Seiten) kennt ExpressionEngine hingegen nicht. Dafür kann der Nutzer nahezu beliebige Datenstrukturen anlegen (z.B. ein Weblog mit den Feldern Titel, Abstract, Inhalt und Extras) und diese Datenstrukturen an beliebiger Stelle im Layout und in beliebiger Gestalt ausgeben.
Was zu Beginn nach einem etwas besseren Blogsystem aussieht, offenbart sich bei genauerem Hinschauen und Probieren als unglaublich flexibel einsetzbares Content-Management-System. Der Focus des Systems liegt dabei eindeutig auf dynamischen Datenstrukturen und deren Verknüpfung und Ausgabe. Demzufolge hat man bei den ersten Berührungen mit der ExpressionEngine unter Umständen so seine Schwierigkeiten, weil mit seitenbasiertem Denken hier nicht viel zu holen ist. Einen Seitenbaum oder einen Generator für möglichst tief verschachtelte Menüebenen sucht man hier vergebens. Wer also nur ein paar statische Seiten bequem über einen Online-WYSIWYG-Editor pflegen will, für den ist die ExpressionEngine sicherlich nicht die erste Wahl.
Wer es allerdings mit großen Datenmengen und verschiedensten Datenstrukturen (Newsbeiträge, Events, Adressen, Kundendaten, u.v.a.m.) zu tun hat, für den eröffnen sich unglaubliche tolle Möglichkeiten für deren Verwaltung und Darstellung, bei denen herkömmliche CMS schnell die Ohren anlegen.
Ein Beispiel zum Verständnis: Dieses Weblog ist wie oben bereits erwähnt als Datenstruktur mit den Feldern Titel, Abstract, Inhalt und Extras angelegt. Die Spotlights sind ähnlich aufgebaut. Die CSS-Spielwiese ist noch in Planung. Hier werde ich HTML-Quelltexte und Textbreiträge gemeinsam verwalten und auch das Zitat auf der Startseite ist als kleine Datenstruktur angelegt (Zitat und Autor), angezeigt wird jeweils der neueste Eintrag. Auf diese Weise wird der überwiegende Teil der Highresolution-Webseite aus solchen Datensätzen erzeugt, über die Sie als Administrator volle Kontrolle haben. Ein Fotoblog mit umfangreichen Exif-Daten ist damit ebenso schnell angelegt und verwaltet wie eine komplexe Nachrichtenseite oder ein umfangreicher Eventkalender. Mitglieder-, Foren-, Wiki-, Galerie-Module sowie ein Query-Modul, mit dem sich so ziemlich alles aus der Datenbank quetschen lässt, vervollständigen den großen Funktionsumfang. Es versteht sich fast von selbst, dass alle Module reibungslos zusammenarbeiten.
Die Template-Engine
Wer mich ein wenig kennt weiß, dass ich dem teilweise erzwungenen Mischmasch aus PHP und HTML einiger CMS-Systeme (z.B. Wordpress) nichts abgewinnen kann. Deshalb liebe ich die Template-Engine von ExpressionEngine. HTML-/RSS- und CSS-Templates können wahlweise in der Datenbank gepflegt oder als Files auf dem Server vorgehalten werden. Eine Website besteht üblicherweise aus mehreren Templategruppen und innerhalb der Gruppen aus verschiedenen Templates. Aus den Templategruppen und Templates generiert die EE gleichzeitig die URL-Struktur. Hier ist sorgfältige Planung gefragt, denn Ihr wisst ja: Cool URI’s don’t change.
Das Geniale bei der ExpressionEngine – Templates können in beliebige Einzelteile zerlegt und ineinander verschachtelt werden. Dazu besteht die Möglichkeit zur Übergabe und Auswertung von Variablen innerhalb der Templates. Dadurch lassen sich komplexe Abhängigkeiten in den Templates definieren – wohlgemerkt, alles mit einfachen Textbausteinen, es ist keinerlei PHP erforderlich. Wem das nicht reicht, der kann natürlich jederzeit PHP bemühen, möglich ist alles – aber nötig ist es in vielen Fällen eben nicht.
Zu 95% hat man bei der ExpressionEngine als Templateentwickler volle Kontrolle über den Quellcode. Eine Ausnahme bilden die dynamisch generierten Formulare, wie das Kontaktformular oder auch die Kommentarformulare. Im Großen und Ganzen ist auch das kein wirkliches Problem, denn die ExpressionEngine rendert sauberes XHTML. Dennoch hatte ich hier ein Problem. Ohne Zugriff auf den Formularcode konnte ich keine benannten Anker an die Sprung-URL anfügen, was das direkte Anspringen der Kommentarvorschau nach dem Neuladen der Seite zwischenzeitlich erschwert hat. Hierfür habe ich mir per JavaScript geholfen und werde noch ein Posting im EE-Forum hinterlassen.
In der Summe macht der Templatebau mit der ExpressionEngine enorm viel Spaß. Das System ist übersichtlich, die Syntax leicht verständlich und mithilfe der Variablenübergabe und bedingten Anweisungen ebenfalls extrem vielseitig. Die gute englische Online-Dokumentation hilft weiter, wenn man Schlüsselwörter nicht mehr weiß. Die Templates der gesamten Highresolution-Site kommen ohne eine einzige Zeile PHP aus. So mag ich das.
Open Source ist nicht alles
Im Gegensatz zu vielen bekannten CMS-Systemen ist die ExpressionEngine nicht für lau zu haben. Sie kostet Geld. Für den kommerziellen Einsatz mit 249 Dollar sogar ordentlich Geld. Für den Privatgebrauch gibt es mit der ExpressionEngine Core eine kostenfreie Version eine lohnenswerte Alternative. Zwar ist der Funktionsumfang der Core-Version in einigen Bereichen eingeschränkt, dennoch ist genauso vielseitig einsetzbar. Möchte man mehrere Sites über eine gemeinsame Installation pflegen, benötigt man zusätzlich den Multi-Site-Manager, der bei kommerzieller Nutzung nochmals mit 199 Dollar bezahlt werden will. Es sei daher jedem angeraten, nicht blindlings zu kaufen. Wer mit der ExpressionEngine liebäugelt, sollte die kostenfreie Core Version ausgiebig testen.
Die Anschaffungskosten sind einmalige Ausgaben. Mit der Anschaffung erhält man ein Jahr lang freie Updates. Anschließend kann man die aktuelle Programmversion auf Lebenszeit weiterverwenden. Eine Verlängerung des Update-Service ist mit max. 39 Dollar pro Jahr für die kommerzielle Nutzung schon erträglicher. Doch nachdem ich so lang und breit über Kosten geredet habe, welchen Vorteil zieht man daraus? Steht der ExpressionEngine doch eine Vielzahl an Open-Source-Systemen zur Verfügung.
Die Frage lässt sich so pauschal nicht beantworten, ich werde es jedoch aus meinem Blickwinkel versuchen. Das System ist extrem flexibel einsetzbar, Bedienung und Template-Handling im Backend gehen sehr leicht von der Hand. Ich komme mit dem System hervorragend zurecht und bin noch nicht an seine Grenzen gestoßen. Damit rentiert sich für mich die Geldausgabe, denn ich setz das System seit nunmehr 3 Jahren sehr flexibel ein. Als Randnotiz sollte hier auch erwähnt werden, dass es während dieser Zeit Erweiterungen der API, jedoch keine grundlegenden Änderungen gab. Das System ist sehr durchdacht aufgebaut, was die Pflege älterer Projekte enorm erleichtert. Der zweite große Vorteil offenbarte sich mir beim Umbau der Highresolution-Website – der unglaublich gute Support. Während der Neugestaltung der Seite und der Übernahme der Daten aus dem alten Weblog hatte ich mit zwei Bugs des Multi-Site-Managers zu kämpfen. In beiden Fällen stand mir binnen 24 Stunden ein EE-Entwickler persönlich im Backend helfend zur Seite und binnen weiterer 12 Stunden waren beide Probleme zu meiner vollsten Zufriedenheit gelöst. Die Ellislab-Jungs waren dabei unglaublich hilfsbereit, Problem Nr.1 wurde von Sonnabend auf Sonntag gelöst – ein Unding in der deutschen Service-Wüste. Im Agenturalltag macht ein solcher Support die Anschaffungskosten der Software mit Sicherheit schnell vergessen.
Ausblick
Noch in diesem Sommer erwartet die Community die Ankunft der ExpressionEngine 2.0. Die komplett runderneuerte Software soll dann mit einem noch komfortableren Backend, zahlreichen neuen Funktionen und auf Basis des freien PHP-Application-Frameworks Code-Igniter weiter durchstarten. Ich freue mich bereits jetzt riesig darauf und hoffe, die Ellislab-Jungs lassen uns nicht mehr zu lange darauf warten. Eine deutschsprachige Community gab es eine Zeit lang auch, leider liegt sie momentan etwas am Boden. Aber das wird vielleicht mit EE 2.0 auch wieder besser werden.
Montag, 01.09.08 (14:15 Uhr)
bin mit EE auch sehr zufrieden und konnte viel umsetzen. auch auf die neue 2.0 version bin ich gespannt - vor allem, ob ein update ohne probleme geht und nicht die webseiten ins nirvana befördert - habe doch ein paar eigene PHP codes eingefügt - na mal sehen.
lg aus wien
R.
www.s44.at
Dienstag, 02.09.08 (14:24 Uhr)
Sehr informativer Artikel.
Bei einer Sache muß ich dich aber berichtigen:
Mit EE kann sehr wohl eine statische HTML Seite umsetzen. Einfach für jede Seite ein eigenes Template einbauen und wiederkehrende Elemente (Header, Footer, Sidebar) per PHP auslagern. So kann man EE auch sehr gut als online HTML Editor und Verwalter nutzen. Ist vielleicht nicht im Sinne der Entwickler, geht aber erstaunlich flott von der Hand…und überall wo man dynamische Elemente braucht, kann man sie inefach einbauen.
Hat man also beispielsweise ein fertiges HTML Template kann man es einfach mit Copy&Past;in EE einbauen und dann mal weitersehen was und wie man noch EE Elemente einbauen kann. Insbeosndere wenn man noch neu ist und von einer statischen auf eine dynamische CMS Seite umsteigen will sehr einsteigerfreundlich…
Dienstag, 02.09.08 (17:34 Uhr)
Hallo Holger,
selbstverständlich kann man statische Seiten bauen mit der EE. Das Auslagern von Header und Footer geht auch ohne PHP mit den Bordmitteln der Templateengine.
Mir ging es darum klarzumachen, dass dieser Weg nicht der Intention der EE entspricht und sie daher die Erstellung von Seitenbäumen und Menüstrukturen nicht unterstützt. Machbar ist es zweifellos innerhalb einer Website auch fast unumgänglich, denn ein Impressum oder Datenschutzerklärung (klassische statische Seiten) braucht ja mittlerweile fast jede Website.
Mittwoch, 03.09.08 (09:40 Uhr)
Ich lasse auch EE auf meiner eigenen Site laufen, bin mittlerweile aber - gerade, was das Einpflegen neuer Inhalte anbelangt - bequemer geworden und möchte eigentlich nicht mehr auf komfortable WYSYG-Editoren verzichten. Im Grunde kann das heutzutage (fast) jedes CMS.
Auf Kunden kann ich EE deshalb nicht loslassen, weil sie schon beim Reinstellen von Bildern überfordert sind (“Warum muss ich erst hier klicken, dann da was reinladen, dann wieder kontrollieren, ob es im richtigen Feld ist und wieso sieht das dann so komisch aus in der Vorschau?”) Eigentlich ist das schade.
Es wäre wünschenswert, wenn EE 2.0 sich auf WYSIWYG aufrüsten ließe und auch eine bequeme Medienverwaltung endlich berücksichtigen würde.
Trotzdem freue ich mich natürlich auf die neue Version.
LG
Donnerstag, 02.10.08 (11:18 Uhr)
Danke für die ausführliche Vorstellung…
So wie es hier beschrieben wird, könnte ExpressionEngine das CMS sein, nachdem ich schon immer gesucht habe. Für eigene Projekte empfinde ich WYSYG nicht als Pflicht, allerdings würde ich mich der Meinung anschließen, dass man das System dadurch nicht so ohne weiteres auf Kunden loslassen kann. Aber auch bei den scheinbar “einfachen” CMS mit WYSYG ist dies nicht so ohne weiteres möglich: Diese kranken häufig an logischen Fehlern und umständlichen Konzepten.
Im übrigen bin ich der Meinung, dass ein gutes CMS auch mal Geld kosten darf. In diesem Fall scheint es allerdings wirklich nicht ganz billig zu sein, da die kommerzielle Lizenz wohl jeweils nur für ein einziges Projekt gilt. Weiterhin werden für neue Updates nach einem Jahr scheinbar noch einmal jeweils die 39$ jährlich fällig.
Donnerstag, 20.11.08 (22:49 Uhr)
Danke für den sehr ausführlichen Artikel. Da bekommt man richtig Lust das CMS zu testen, aber die Kosten sind der Haken. Es gibt sehr viele gute CMS Systeme die nichts kosten - Typo3, ezPublish,... Vielleicht wird es ja mal Open-Source. WebEdition ist es jetzt ja auch.
Gruß
Andy
Samstag, 22.11.08 (03:02 Uhr)
hallo, erstes mal entschuldigung für mein schlechtes Deutsch. sie haben sehr gutes infermation geschireiben über ExpressionEngine. ich will free blog oder cms service anbieten, ist ExpressionEngine dafür geiegnet? kennen sie ein webseite mit multi user funktion.kann ich ein demo oder test seite sehen.ich danke ihnen vielmals.
gruss
Dienstag, 02.12.08 (20:46 Uhr)
Gute Frage. Ich denke, Du bist hierbei am besten beraten, den Support der ExpressionEngine mal direkt zu kontaktieren. Vermutlich ist es möglich - Verlässliches kann ich dazu allerdings nicht sagen. Die EE hat einen sehr komfortablen Mitgliederbereich, inwieweit dieser dafür auch nutzbar ist, vermag ich jedoch nicht einzuschätzen.
Sonntag, 18.01.09 (23:01 Uhr)
“Ausnahme bilden die dynamisch generierten Formulare, wie das Kontaktformular oder auch die Kommentarformulare…. Ohne Zugriff auf den Formularcode konnte ich keine benannten Anker an die Sprung-URL anfügen ... Hierfür habe ich mir per JavaScript geholfen ...”
Was in vielen Fällen gut funktioniert, ist das Hacken des Language-Files (dann steht statt <div class=“codeblock”>
$thanks = "Danke" eben $thanks="<a name="bla"></a>Danke</div> o.ä. Musst dich bei den Updates halt immer nur erinnern ...Grüße
stephan@spamschlucker.org
Mittwoch, 23.12.09 (16:42 Uhr)
Mal etwas anderes als Wordpress? Ich würde mich sehr darüber freuen wenn es sich durchsetzt.
Donnerstag, 29.07.10 (10:17 Uhr)
So schliessen sich manchmal Kreise. Als begeisterter Lizenznehmer von YAML habe ich mich nun jahrlang mit TYPO3 und der Einbindung von YAML in Templavoila rumgeschlagen und geärgert. Was für mehr strukturierten Code und Skalierbarkeit gedacht war, wurde für mich immer unübersichtlicher. Also habe ich mich entschieden für ein neues CMS auf den Markt zu gehen und mich schliesslich (trotz Kosten) für EE entschieden. Und schaue da, Dirk Jesse hat das selbe gemacht. Das beruhigt mich immens, weil wer ein Framework wie YAML erstellen kann, der macht alles mit Hand und Fuss.