Ich hatte mir dazu eine Anforderungsliste mit "must haves" und "nice to haves" erstellt. Aber da ich schon zuvor mit einigen Systemen gearbeitet habe, war eines der wichtigsten Kriterien das CMS-Backend. Jener Bereich, den Entwickler und auch Anwender mehr oder weniger gut nutzen können und der sich dementsprechend auf die Motivation auswirkt. Einfach zu verstehen und übersichtlich, so sollte dieser Bereich gestaltet sein. Die gängigen Module und Plug-ins sind bei den Content-Management-Systemen ja meistens bereits Bestandteil, aber wie Anwender damit arbeiten können, war und ist weiterhin einfach elementar.
MODx Facts
MODx ist ein Fork von Etomite und 2005 entstanden. Ausgehend von den Gründern Raymond Irving und Ryan Thrash wurde das Projekt von einem engagierten Team vorangetrieben. 2007 wurde MODx von Packt Publishing als das vielversprechenste neue CMS ausgezeichnet.
Und hier hat die Liebe (auf den ersten Blick) zu MODx begonnen, wobei mir zu Beginn noch gar nicht klar war, welch beeindruckendes und doch einigermaßen simples Framework dahinter steckt.
Wie oder wo kann MODx nun eingeordnet werden?
Verglichen mit den populären Systemen wie TYPO3, Drupal, Joomla! oder WordPress orientiert sich MODx schon eher an TYPO3, wobei ein direkter Vergleich hinken würde, so wie die Geschichte mit den Äpfeln und Birnen. MODx ist im eigentlichen Sinne auch ein Content-Management-Framework, welches mit einem kompletten Backend und einem entsprechenden API standardmäßig ausgestattet ist.
MODx-Funktionsüberblick
- Mehrsprachigkeit
- Installationsprozess
- Web Standards
- Content- und Datenverwaltung
- Flexible und erweiterbare Dateneingabemasken
- Meta-Verwaltung
- SEO
- Berechtigung über User, Rollen und Workflow
- Internes Message System
- System- und Benutzerlogs
- Import/Export
- Backup
- Frontend Editing
- Backend Erweiterbar durch Komponenten und Plug-ins
Im Basispaket werden die wichtigsten Add-Ons (Snippets, Plug-ins und Komponenten), inklusive einer Demosite (Struktur und Inhalt/Dokumente, Templates und Chunks) ausgeliefert.
Die Zeiten der Core-Hacks sind (schon lange) vorbei
Aufgebaut ist das CMS über einen Softwarekern, der im Grunde nie angefasst werden muss. Das genial Einfache: Mit der MODx-Terminologie, bestehend aus Dokumenten, Links und Template -Variablen für das Erfassen von Inhalten und Templates, Chunks, Snippets, Plug-ins und Komponenten für die Verarbeitung und Ausgabe von Inhalten, wird es zu einem sehr flexiblen und anpassungsfähigen Tool, welches sich nicht hinter den anderen prominenten Systemen verstecken muss.
Terminologie
Ressource: Eine Ressource dient zur Speicherung von Inhalten innerhalb von MODx. Es gibt vier verschiedene Ressource-Typen:
- Dokument: Standardressouce für die Datenerfassung
- Weblink: Ein Verweis auf eine interne oder externe Seite
- Symlink: Ein symbolischer Link, wobei die Darstellung durch ein anderes Template verändert werden kann.
- Statische Ressource: Die Einbindung von einer Datei bzw. Script über das Filesystem
Template Variablen
Bei MODx ist prinzipiell jedes Formular mit dem Inhalte oder Strukturen (Ressourcen) erfasst werden, gleich aufgebaut, zb. Titel, SEO-Alias, Menütitel, Inhalt. Nun können mit Template-Variablen einzelne Felder (zb. Text, Rich Text Editor, Bildverknüpfung, Checkbox) einem Inhaltsformular zusätzlich zugewiesen und so können entsprechend die Anforderungen der Seite erweitert werden. Einbindungssyntax:
[[*bild]]
Templates
Das HTML-Grundgerüst einer Seite wird einer Ressource zugeordnet und bestimmt dessen Aussehen. Im Template selbst können Platzhalterlogiken (Chunks, Snippets) eingebunden werden.
Chunks
HTML-Fragmente, werden einmal definiert und können beliebig in Templates, Snippets, Chunks(!) und Plug-ins eingebunden werden. Umgekehrt ist aber auch die Einbindung von Snippets und Chunks möglich und eignen sich vor allem für wiederverwendete Elemente. Einbindungssyntax:
{{$mein_chunk]]
Snippets
Die eigentlichen Erweiterungen von MODx, ohne Snippets geht nichts! Vergleichbar mit Modulen oder Plug-ins bei anderen Systemen. Die Snippets führen PHP-Code aus und haben vollen Zugriff auf das MODx-API. Einbindungssyntax mit optionalen Parametern:
[[mein_snippet ¶m1='value1'¶m2='value2']]
Plug-ins
Eine Art "Event-Override-System" und das Geniale an MODx; Plug-ins führen wiederum PHP-Code mit vollem Zugriff auf das API aus, werden aber keinen Inhalten zugewiesen, sondern greifen bei Events ein. Standardmäßig gibt es ca. 100 Events, welche sowohl für die Frontend-Seitengenerierung, als auch für das Backend eingesetzt werden können. Zum Beispiel: OnParseDocument, OnLoadWebDocument, OnWebAuthentication, OnBeforeManagerPageInit, OnChunkFormPrerender, um nur einige dieser Lebensretter zu nennen.
Kurzum: Bei der Ausführung eines Events wird der PHP-Code angewendet und kann die Ausgabe, den Prozess, die PHP-Variablen uvm. ändern.
Komponenten
Erweitern die Funktionen im Backend, zum Beispiel Newsletter, Massenoperationen, etc. Bis zur Version Evolution hießen "Komponenten" → "Module". Schemenhafte Terminologie (Frontend):




