MODx und ich

Aufmerksame Leser (die vielleicht sogar meinem Twitter-Account folgen) wissen es längst: Mein Webdesigner-Herz schlägt für MODx, das vielleicht unterschätzteste Content-Management-System der Welt. Zeit, mal kurz darzulegen, was ich am System mag, und warum es für die meisten meiner aktuellen Projekte die richtige Wahl ist.

MODx

Der für mich klarste Vorteil an MODx ist die extrem hohe Entwicklungsgeschwindigkeit. Ich kenne kein anderes System, mit dem man so schnell einen HTML-Dummy in eine funktionierende dynamische Website umwandeln kann. Warum ist das so? Eines der Geheimnisse ist der gut durchdachte Admin-Bereich: Alle Funktionen, die man zum Bauen von Templates und Konfigurieren von Erweiterungen benötigt, sind kompakt platziert und schnell zu erreichen. Man wechselt mit wenigen Klicks zwischen Inhalts-Ressourcen und Skripten hin und her, und hat ständig die notwendigen Settings im Blick. Kleine Erweiterungen schreibt man in Sekundenschnelle als »Quick Snippets« selber und muss nicht aufwendig irgendwelche Ordner und Dateien anlegen. Die Templates und Template-Fragmente werden in der Regel im Backend gepflegt und in der Datenbank gespeichert. Das ist prinzipiell Geschmackssache, hat sich aber in meiner täglichen Praxis bei Textpattern und MODx sehr bewährt und beschleunigt die Handhabe enorm. Außerdem wird der Rechtsklick mit Maus/Trackpad unterstützt, was zunächst ungewöhnlich erscheint, aber ziemlich praktisch ist.

In MODx werden Inhalte grundsätzlich eher hierarchisch organisiert, was den meisten Kunden deutlich einfacher zu vermitteln ist als ein komplett flaches Datenbank-Paradigma wie bei Drupal. Es gibt einen zentralen, fast immer sichtbaren »Seitenbaum«, obwohl man ihn besser »Ressourcen-Baum« nennen sollte. Dieser enthält sämtliche Inhalte der Website, wobei nicht jede Ressource im Baum automatisch einer einzelnen Seite im Webangebot entsprechen muss. Man kann auch Bereiche des Baums aus der Navigationsstruktur herausnehmen und als einfachen Datenspeicher verwenden, und die dort gelagerten Datensätze an anderer Stelle verwenden. Der Zugriff auf die strukturierten Daten ist in verschiedensten Kontexten möglich und wird dem Entwickler sehr leicht gemacht.

MODx verfolgt eine Politik des schlanken Cores. Mit einer Basis-Installation ohne Erweiterungen kann man nicht besonders viel anstellen, außer vielleicht Daten einpflegen. Um die Seiten zum Leben zu erwecken, benötigt man sogenannte Snippets, Plugins und Module. Das Interessante daran: Erweiterungen haben eigenständige Markennamen und werden auch als eigenständige Produkte vermarktet, so gibt es den Wayfinder für das Rendern von Navigationen, Quip als Kommentarsystem und die AjaxSearch als flexibles Suchsystem. Relativ selten kommt es vor, dass es mehrere Extras für den gleichen Zweck gibt: Die Qualität der Haupterweiterungen ist meist so gut, dass es keiner Alternativen bedarf. Es wäre aber ohne Probleme möglich, diese anzubieten.

Ganz klar: Das System ist nichts für Anfänger – man arbeitet nicht mit fertigen Themes wie bei WordPress, sondern beginnt in aller Regel mit einem leeren Blatt und fügt nach Bedarf neue Funktionen und Inhalte hinzu. MODx generiert selber so gut wie keinen HTML-Quellcode. Die meisten Extras bringen zwar Default-Templates mit, aber die lassen sich extrem leicht finden und durch eigene Chunks ersetzen. Wer eine MODx-Seite fertig gebaut hat, kann mit einem Lächeln im Gesicht behaupten, dass er zu 100% weiß, wo sein Quellcode herkommt, was bei Drupal oder TYPO3 definitiv nicht immer der Fall ist.

Zu guter Letzt eine Erkenntnis, die ich bei fast jedem Projekt aufs Neue habe: Ähnlich wie jQuery (in einem anderen Kontext) macht MODx immer genau das, was man erwarten würde. Es gibt kaum Überraschungen oder WTF-Momente, weil alles so einfach und nachvollziehbar ineinandergreift. Man bekommt mit MODx ein »Best Of« aus vielen guten CMS-Ideen, die zwar standardmäßig an die in der Praxis häufig benutzten Anwendungsfälle angepasst sind, sich aber mit wenigen Handgriffen auch zu exotischeren Zwecken umbiegen lassen.

Nach soviel Begeisterung sollen ein paar Nachteile hier allerdings nicht verschwiegen werden:

  • Die Standard-Medienverwaltung ist kaum abstrahiert, operiert sehr nahe am Dateisystem und generiert keine Datenbankeinträge mit Metadaten. Für Revolution schickt sich eine Erweiterung namens Gallery an, das zu verbessern, aber in meinen Augen gehört eine ordentliche Mediathek mit Bilder-Skalierungsfunktion höher abstrahiert ins Core-System.
  • Das voll ajaxfizierte Backend der neuen Revolution-Version ist noch etwas träge und reagiert nicht so flott, wie man es von den Framesets der Evolution-Version kennt. Hier ist hoffentlich noch Optimierungspotenzial.
  • Revolution ist ein fettes Biest und verlangt eine aktuelle PHP-Version mit PDO-Unterstützung. Bei jeder Installation gilt es mehrere Tausend Dateien und insgesamt 10 MB auf den Server zu laden. Wohl dem, der einen Root-Zugang hat und auf dem Server entpacken kann. Und ich wäre vorsichtig, was den einen oder anderen Billighoster angeht. Ich bin mir nicht sicher, ob sich Revolution hier überall installieren lässt.
  • Websites mit einem Fokus auf zeitbasierten, flachen Datenstrukturen und sehr vielen Datensätzen sind mit dem hierarchisch organisierten MODx-Ressorcenbaum ein Problem. Wer ein Blog mit hunderten Beiträgen im Jahr plant, wird wahrscheinlich nicht wahnsinnig glücklich werden. Es gibt natürlich Erweiterungen, die für diese Art von Daten ihre eigenen Datenbanktabellen anlegen und eigene Admin-Bereiche im Backend besitzen. Das geht dann jedoch schon ziemlich in Richtung individueller Anwendungs-Entwicklung – dies ist wiederum mit MODx ebenfalls möglich, schließlich handelt es sich ja nicht nur um ein CMS, sondern auch um ein CMF (Content-Management-Framework).
  • Tutorials und Dokumentationen sind ein bisschen verstreut und nicht so leicht zu finden wie bei anderen Systemen. Für die neue Version »Revolution« gibt es jedoch inzwischen eine brauchbare offizielle Doku, die Potential hat.

Bleibt die Frage, ob man als Einsteiger noch die »alte« Version Evolution, oder schon die neue Revolution lernen sollte. Grundsätzlich gilt: Beide Versionen haben die gleichen Paradigmen, so dass man bei einem Wechsel – gleich welche Richtung – nicht sonderlich viel umdenken muss. Angeblich soll die Evolution-Version ja auch in Zukunft total engagiert weiterentwickelt werden, was ich allerdings ein wenig bezweifele. Ich denke, dass man heute locker bereits mit Revolution loslegen kann. Die finale Version 2.0.0 kommt in wenigen Tagen/Wochen raus und bringt unglaublich praktische Dinge mit, wie zum Beispiel das Herunterladen und Installieren von Plugins aus dem Backend heraus, sowie ein deutlich modernerer Look der Bedienelemente. Und es ist wesentlich mehr Potenzial für zukünftige Ideen vorhanden.

Nützliche Links