ModX Tutorial

Changing the net, one site at a time…

Das Grundprinzip: Parser und Manager
ModX besteht im Großen und Ganzen aus zwei Teilen: Der Parser parst die Ressourcen und die Elemente, um dynamischen Content umsetzen zu können, während der Manager die Benutzeroberfläche und die Funktionalitäten bereit hält, um eben dies tun zu können.
 
1. der Parser
Das Aufrufen einer Seite im Front-End ruft den Parser auf den Plan: Die index.php Datei stellt - je nach Konfiguration der Site -  entweder die ID oder das Alias des angeforderten Dokuments bereit. Die index.php initialisiert das betreffende Objekt in ModX und startet den Parser.
 
Der Parser führt eine Reihe von Operationen aus, um konkret zu bestimmen, welche Informationen für eine bestimmte Aktion / Abfrage / Interaktion an den Browser zurückgespiegelt wrden müssen
 
  • Feststellen der Bereitschaft der Site in Abhängigkeit von Seitenkonfiguration. Falls die Site "offline" oder nicht zu erreichen ist, wird die in der Konfiguration dazu bestimmte Nachricht ausgegeben, die dem User meldet, dass die Seite nicht erreichbar ist. Diese Mitteilung kann individuell in den "language files" des Managers festgelegt werden.
  • Wird eine Ressource ID (z.B. id=35) oder ein Alias (z.B. q=page.html) angefordert? Falls es ein Alias sein sollte, muss nun die Dokument ID ermittelt werden.
  • Wenn die Ressource cachable ist, muss der Seitencache ausgelesen und die dort gespeicherte Information wiedergegeben werden. Es wird sichergestellt, ob der Benutzer die Seite überhaupt sehen darf, es muss überprüft werden, ob ungechachte Snippet-Calls auszuführen sind, diese müssen dann ausgeführt und die REssource dargestellt werden.
  • Wenn die angeforderte Ressource nicht besteht, nicht angezeigt werden kann oder bschädigt oder zurückgezogen bzw. gelöscht worden ist, muss die in der Konfiguration festgelegte "Warnmeldung" angezeigt werden.
  • Wenn die Ressource privat ist und nur mit besonderen Berechtigungen einzusehen ist,  muss der Statur / die Webzugriffsberechtigung des Benutzers geprüft werden, um sicherzustellen, dass die Ressource freigegeben werden darf. Falls nicht, wird die Warnmeldung "Zugriff verweigert" angezeigt.
  • Falls die REssource ein Weblink ist, muss die entsprechende URL generiert werden und der Benutzer muss dorthin umgeleitete werden.
  • Das Template, das die Ressource stylt, muss aufgerufen werden. Falls das nicht möglich ist, wird der Inhalt ohne Form und Formatierung als Palin-Text auf dem Bildschirm dargestellt.
 
2. der ModX Manager
 

Wenn im Backend die "manager/index.php"-Seite direkt  aufgerufen wird,  wird als erstes die Zugriffsberechtiung überprüft. Nach dem Login wird der Begrüßungsbildschirm mit dem Login-Prompt angezeigt.

Wenn man nach Eingabe und Überprüfung von Benutzernamen und Kennwort - je nach Webzugriffsberechtigung - eingeloggt ist, wird die "manager/index.php"-Seite angezeigt.

Von nun an wird für jede Aktion, die ausgewählt wird, die "manager/index.php"-Seite aufrufen, um eine String-Query auszuführen. Die Struktur des Managers erlaubt es zwischen den einzelnen den Aktionen zugeordneten php-Dateien, die für deren Umsetzung verantwortlich sind, hin und her zu wechseln.
Die jeweils angeforderte / ausgewählte Aktion wird dann im Manger-Frameset optisch dargestellt.

Wenn eine Operation abgeschlossen ist und man diese speichert, wird das von der dafür verantwortlichen "processor-php"-Seite ausgeführt, welche die Änderungen in den jeweiligen php-Seiten speichert und für den Benutzer dann die richtige Manager-Seite, auf der er sich gerade befand, wieder aufbaut.

 
3. Das Manager-Fenster
 
DAs Manager-FEnster gliedert sich in drei Teile: Der Code dafür befindet isch im "manager/frames" Ordner in der ModX-Installation auf dem Server. die Datei "1.php" beinhaltet die Struktur der gesamten Seite:
 
manager-werkzeugleiste
 
Die php-Dateien, die die einzelnen Optionen ausführen, die in der Manager-Werkzeugleiste enthalten sind, sind alle in der "menue.php" enthalten.
resourcen-baumLinks unter der Werkzeugleiste ist der Ressourcen-Baum zusehen. Der Name dieses Frames ist "tree" und dessen Struktur wird in der "tree.php" abgebildet.
Die  dynamischen Komponenten des Contents werden von der Datei "nodes.php" gesteuert. Dieser Frame bildet die Hierarchie der Site mit ihren Parent und child-Dokumenten ab. Es handelt sich hierbei um eine virtuelle Abbildung; die REssourcen werden eigentlich in einer "flachen" Darstellung "in der  "site_contenttable" gespeichert. Der Baum wird an hand der IDs konstruiert, die jedem Dokument zugewiesen wird. Die "isparent" stuert die Darstellung der Datei-Icons für die Ordner und Dokumente.

Aus dem Hierarchiebaum kann man die Ressource(n) auswählen, die man gerade bearbeiten möchte.
 
Rechts neben dem Hierarchiebaum befindet sich der Arbeitsbereich des Mangers. der Name dieses Frames ist "main". Dessen Struktur wird von verschiedenen .php-Dateien gesteuert, je nachdem, welchen Menüpunkt man aufgerufen hat, steuern die mit ihm verknüpften .php-Dateien die Vorgänge.
 
manager-main-frame
Die meisten Steuerdateien und -Elemente werden in der Datenbank gespeichert. Alles das, was im Editierbereich für ein beliebeiges Element von Nöten ist, wird aus der Datenbank gelanden. ein gutes Beispiel dafür dien die Snippets, Module und Plugins, die mit minimalem Code im Html aufgerufen werden [ *snippet*], und die trotzdem komplexe dynamische Inhalte ausführen. Alles was zur Ausführung  eines Snippets notwendig ist wird also aus  der php-Dateien der Datenbank geladen. Diese befinden sich meist in den Verzeichnissen:  "assets/snippets", "assets/modules" und "assets/plugins".

Der Manager ruft auch den Parser auf und lässt ihn Routinen ausführen, die für die "library-Funktionen" und zum Zugriff auf die Datenbank  sowie für das Überprüfen der Zugriffsrechte, aber auch die die Konfiguration der gesamten Site notwendig sind.
 
Diese Seitenkonfiguraitionen werden meist bei der Erst-Installation von ModX vorgenommen. Unter dem Tab "Werkzeuge" können viele Parameter wie Site Name, Sprache, Zeichensatz, WArnmeldungen etc. individuell eingestellt werden.