MODX
MODX ist ein freies Content-Management-Framework (CMF) zum Erstellen von Websites. Es basiert ursprünglich auf dem CMS Etomite und war in seiner ersten Version ein Mod dieses Systems, woraus sich der Name MODX ableitet.
MODX | |
---|---|
Basisdaten | |
Erscheinungsjahr | 28. April 2004 |
Aktuelle Version | Evolution 1.2.1 / Revolution 2.8.1[1] (Evolution: 11. Januar 2017 Revolution: 22. Oktober 2020) |
Aktuelle Vorabversion | 3.0.0 alpha2 (28. Januar 2020) |
Betriebssystem | Apache oder IIS, PHP ab 5.1.1+ (außer 5.1.6/5.2.0), MySQL ab 4.1.2+ (außer 5.0.51) |
Programmiersprache | PHP[2] |
Kategorie | Content-Management-Framework |
Lizenz | GPL2 |
deutschsprachig | ja |
modx.com |
MODX besitzt einen schlanken Kern und SEO-Funktionalität. MODX ist in der Programmiersprache PHP implementiert und benutzt ein Datenbankmanagesystem wie z. B. MySQL. Das Back-End basiert auf MooTools.
MODX wurde im November 2007 von Packt Publishing zum vielversprechendsten CMS des Jahres gekürt.[3] 2010 erhielt es bei den ebenfalls von Packt Publishing ausgerichteten Open Source Awards den dritten Platz im Bereich CMS.[4] Ziel der Entwickler ist ein Content-Management-Framework mit objektorientiertem Kern, das Webdesignern ein hohes Maß an Flexibilität erlaubt und den Einsatz der neuesten AJAX und Web-2.0-Technologien ermöglicht.
Zu diesem Zweck wurde der Framework-Kern auf Basis der neu entwickelten ORB-Bibliothek OpenExpedio[5] (einer freien Erweiterung der Datenbankabstraktionsebene PDO) mittlerweile gegenüber dem Vorgänger Etomite vollständig umgeschrieben.[6]
MODX steht unter GPL und ist kostenlos verfügbar, mittlerweile wird auch ein kostenpflichtiger Support angeboten.
Grundlegende Funktionsweise
MODX zeichnet sich vor allem durch seine Anpassbarkeit und Flexibilität aus. So kann es in der Beispielinstallation der Version Evolution 1.0.7 mit den Erweiterungen (Plug-ins) für die wichtigsten CMS-Funktionen – Wayfinder, eForm, Weblogin, AjaxSearch, Breadcrumbs, Ditto und Jot – konfiguriert werden. Diese Erweiterungen können jedoch auch ausgetauscht oder ganz weggelassen werden.
Anders als bei manch anderen CMS müssen die Parameter dieser Anwendungen nicht zentral und damit einheitlich für alle mit ihnen erstellten Dokumente vorgegeben werden, sondern können in jedem Dokument unterschiedlich eingestellt werden.
Ein wesentliches technisches Merkmal ist die strikte Trennung von HTML, CSS und PHP.
MODX folgt strikt dem Paradigma Model View Controller, was vor allem für Entwickler interessant ist.
Für Anwender ist das System flexibel anpassbar, so dass auch ungeübte Redakteure Inhalte einfach, sicher und schnell verwalten können.
Templates, Template-Variablen, Snippets und Chunks
Templates
Die Seitengestaltung in MODX basiert auf Templates, welche die Struktur und Platzierung von Inhalt von Dokumenten vorgeben. Die Anzahl der Templates ist beliebig. Jedem Dokument kann bei Bedarf ein individuelles Template zugewiesen werden.
Templates können frei und W3C-konform gestaltet werden. Der gesamte HTML-Code einer Seite kann frei definiert werden. Dynamische Inhalts-Elemente und Navigationsstrukturen werden in den Templates mittels einer Platzhalter-Notation eingebunden. Dabei wird zwischen Template-Variablen, Snippets und Chunks unterschieden.
Template-Variablen
Template-Variablen werden beim Anlegen mit einem oder mehreren Templates verknüpft. Wird ein neues Dokument im Backend erzeugt, können diese Variablen über die Verknüpfung von Template ↔ Template-Variable im Backend in der Bearbeitungsmaske des jeweiligen Dokuments genutzt werden. Template-Variablen können entweder direkt in das Template geschrieben werden oder vom Redakteur direkt im Content platziert werden.
Chunks
Chunks sind statische HTML-Fragmente (vergleichbar mit einem Textbaustein in der Textverarbeitung), die mittels Platzhaltern in Templates oder Dokumenten eingebunden werden können. Die wichtigste Aufgabe von Chunks besteht darin, nicht den gesamten HTML-Code einer Seite in ein Template schreiben zu müssen, sondern wiederkehrende Elemente (z. B. ein Copyrighthinweis, eine Adresse, ein weiterführender Link), die in unterschiedlichen Templates verwendet werden, auszugliedern. Einerseits können dadurch neue Templates aus vorhandenen Chunk-Bausteinen zusammengesetzt werden, ohne jeweils den ganzen HTML-Code neu zu erstellen, andererseits ermöglichen Chunks die Änderung eines in mehreren Templates verwendeten Bausteines an zentraler Stelle, ohne alle Templates oder Dokumente einzeln bearbeiten zu müssen. Chunks können Template-Variablen, Plug-in-Aufrufe und Link-Platzhalter als Inhalts-Elemente enthalten und sind dadurch dynamisierbar. Chunks können kein PHP enthalten!
Snippets
Snippets werden ebenfalls durch Platzhalter in Templates und Dokumenten eingebunden, unterscheiden sich von Chunks aber dadurch, dass sie keine statischen HTML-Fragmente sind, sondern eigene, auf der Programmiersprache PHP basierende Programmlogik enthalten und Datenbankzugriffe ausführen können. Sie sind damit die flexibelsten Template-Elemente.
Das Zusammenspiel von Template-Variablen, Chunks und Snippets stellt bei richtiger Verwendung die strikte Trennung von HTML-Code, Content und Programmlogik sicher und sorgt für eine außerordentliche Flexibilität und Erweiterbarkeit des Systems. MODX wird deshalb manchmal nicht als Content-Management-System, sondern als Content-Management-Framework bezeichnet. HTML/CSS-Kenntnisse sowie Programmierkenntnisse in der Sprache PHP für die Entwicklung von Snippets sind aber vonnöten, um das volle Potential des Systems zu nutzen.
Plug-ins und Module
Abweichend von einigen anderen Content-Management-Systemen werden in MODX nur Erweiterungen der Backend-Funktionalität als Plug-in bezeichnet. Sie basieren auf PHP-Quellcode und werden aufgrund von definierten Systemereignissen ausgeführt. So ist zum Beispiel der in der Grundinstallation enthaltene WYSIWYG-Editor TinyMCE ein Plug-in. Module sind ebenfalls Erweiterungen der Backend-Funktionalität, werden aber nicht durch Systemereignisse ausgeführt, sondern weitgehend unabhängig vom Kernsystem eingebunden. Es existieren verschiedene Module, z. B. zum Anlegen mehrerer Dokumente in einem Arbeitsschritt oder zum Import und Export von Daten.
Sicherheit
MODX wurde bislang nicht Ziel systematischer Angriffe. User sollten dennoch aufgrund bekannt gewordener Schwachstellen immer auf die jeweils aktuelle Version upgraden.
Versionen
Seit dem 22. Juli 2014 steht mit MODX Revolution (Versionsnummer: MODX Revolution 2.3.1-pl) eine neue Release-Version für MODX bereit. Der bis dahin geführte Entwicklungsstrang mit der Versionsnummer 1.0.14 (5. Juni 2014) wurde zudem in MODX Evolution umbenannt. Bei MODX Revolution handelt es sich um eine grundlegende Neuentwicklung, für die inzwischen mehr Snippets zur Verfügung stehen als für MODX Evolution. Für den produktiven Einsatz stehen damit zwei alternative Versionen bereit.
Besondere Merkmale von MODX Revolution
- objektorientierter Kern auf der Basis von OpenExpedio (xPDO)
- objektorientierte und konsistentere API
- neuer Manager auf der Basis von Smarty, Ext (1.0) und MooTools
- flexiblere Installation und Aktualisierungen
- vereinfachte Erweiterung durch eine Pakete-Verwaltung (Package Manager)
- vereinheitlichtes Rollenmodell
- verbesserte Internationalisierung
- Konzept der Kontexte
Rezeption
- Oliver Haase-Lobinger: Flexible Nische. Website mit MODX verwalten. In: c’t. Nr. 16, 2011, S. 164.
Weblinks
- MODX Website (englisch)
- deutschsprachige MODX Community Website (deutsch)
- MODX Online Referenz (englisch)
- MODX Deutschland Forum (deutsch)
- deutschsprachiges MODx Wiki (veraltete Inhalte in deutsch und englisch)
Einzelnachweise
- Download MODX Revolution. In: modx.com. Abgerufen am 15. November 2020 (englisch).
- The modx Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
- MODx Wins Most Promising Open Source CMS. In: www.packtpub.com. 1. November 2007, archiviert vom Original am 1. Juli 2014; abgerufen am 25. November 2016 (englisch).
- 2010 Open Source Awards. In: www.packtpub.com. Archiviert vom Original am 30. Dezember 2010; abgerufen am 25. November 2016 (englisch).
- Jason Coward: xPDO | Object Relational Bridge Framework for PHP. In: xpdo.org. Abgerufen am 25. November 2016.
- Roadmap - Revolution - MODX Issue Tracker. In: bugs.modx.com. Archiviert vom Original am 4. März 2016; abgerufen am 25. November 2016 (englisch).