Terminologie

MODX verwendet die im Folgenden erklärten Begriffe für Objekte.
Es ist wichtig, dass Du verstehst, wie diese funktionieren.

Template

Templates sind Vorlagen, aus denen Deine Seite zusammengebaut wird. Stell Dir einen Serienbrief vor, in dem Adressen, Anreden etc. verwendet werden. Diese Vorlage ist ein Template.

Templates bestehen erst einmal aus HTML, wie jede andere Seite im Internet auch. Templates sollen aber die Daten ausliefern, die Du im Backend erstellt hast. Dazu musst Du das Template mit Seiten-Variablen, Template-Variablen (TVs), Chunks und Snippets dynamisieren.

Ressource

Ressourcen sind Deine „Webseiten“, also die einzelnen Seiten, die Deine Webseite ausmachen. Ressourcen können u.a. HTML-Seiten, externe Links, symbolische Links auf eine andere Ressource sein.

Seiten-Variablen

Jede Seite (Ressource) von MODX besitzt Standard Eingabefelder. Jedes dieser Eingabefelder ist eine Seiten-Variable. MODX Tags für Seiten-Variablen werden in einem Template mit einem Asterix gekennzeichnet, z.B. [[*pagetitle]], [[*longtitle]], [[*description]] oder [[*content]]. Diese Platzhalter kannst Du frei in Deinem Template verwenden und formatieren.

[[*pagetitle]]

[[*description]]
[[*content]]

Template-Variable (TV)

Die Standard Eingabefelder von MODX reichen Dir vermutlich nicht, um alle Informationen zu Deiner Seite zu speichern. Du brauchst z.B. ein weiteres Feld, in dem Du zum Beispiel einen Ort angeben willst. Du erstellst eine TV und definierst, welche Deiner Templates diese Variable verwenden sollen.

Template-Variablen können unterschiedliche Eingabeformate vorgeben: eine einzelne Textzeile, ein mehrzeiliges Textfeld, eine Dropdownliste und viele andere. Eine Übersicht über alle möglichen Formate findest Du unter: http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/template-variables/template-variable-input-types

MODX Tags für TVs werden mit einem Asterix gekennzeichnet, z.B. [[*ort]]. Somit wird eine TV im Template wie eine Seiten-Variable verwendet.

[[*mein-ort]]

MODX Tags

Der dynamische Inhalt wird in MODX in der Regel über spezielle Tags in ein übergeordnetes Element eingefügt. Dies ist nicht immer nur das Template. Du kannst MODX Tags z.B. auch in Chunks, Seiten- und Template-Variablen benutzen. Diese Tags fangen in MODX Revolution immer mit zwei [[ Zeichen an und enden mit zwei ]] Zeichen. Nach den führenden [[ Zeichen folgt meist noch ein weiteres Zeichen, welches den Typ des MODX Tags angibt.

In MODX Evolution ist die Tag Syntax etwas anders. Im Folgenden benutzen wir die Tag Syntax von MODX Revolution. Eine Übersicht über alle möglichen Tags in MODX findest Du auf http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/commonly-used-template-tags.

Chunks

Chunks sind das Arbeitstier zur Organisation. Chunks kann man sich am besten als Textbaustein vorstellen. Alles, was man immer wieder braucht, schreibt man in einen Chunk. Chunks können nur HTML speichern, kein PHP. Dafür können sie aber andere Platzhalter verwenden, wie zum Beispiel TVs, andere Chunks, Snippets und Plugins. MODX Tags für Chunks werden mit einem Dollarzeichen gekennzeichnet, z.B.

[[$mein_chunk:tag]]

Stell Dir vor, Deine Website hat mehrere Templates. Alle Templates unterscheiden sich, aber alle haben eine Fußzeile mit einem Copyright-Hinweis. Da wir nicht jedes Template ändern wollen, wenn sich das Copyright ändert, verwenden wir dafür einen Chunk. Und das geht so:

© 2013 Musterfirma | Home

Diese HTML-Zeile kopierst Du nun in einen neuen Chunk und gibst diesem einen (sinnvollen) Namen, zum Beispiel template.copyright. Diesen Chunk rufst Du jetzt in Deinen Templates wie in folgendem Beispiel auf.


    
        [[*pagetitle]]
    
    
        

[[*content]]

[[$template.copyright]]

Wenn du später das Copyright ändern musst, passiert das nur noch an einer Stelle, nämlich in dem Chunk.

Snippets

Snippets sind PHP Skripte. Snippets können aus komplett eigenem PHP Code bestehen, es kann aber auch Code benutzt werden, der die MODX API bedient. Ein Snippet kann mit Parametern aufgerufen werden. Schauen wir uns als Beispiel den Aufruf für das Snippet Wayfinder an, das wir für die Menü-Erzeugung verwenden können.

MODX Tags für Snippets werden nicht weiter gekennzeichnet, in unserem Fall einfach [[Wayfinder]]. Wenn ein Snippet mit zusätzlichen Parametern aufgerufen werden soll, sieht das folgendermaßen aus:

[[Wayfinder? &startId=`1`]]

Wichtig dabei sind die „Backticks“ vor und hinter der 1. Ein normales Hochkomma ‘ funktioniert nicht. Das Backtick findet man auf der Tastatur neben der Backspace-Taste (mit gedrückter SHIFT-Taste). Die Parameter unterscheiden Groß-/Kleinschreibung. Für eine bessere Lesbarkeit von Snippet-Aufrufen sollte man den Aufruf auf mehrere Zeilen verteilen:

[[Wayfinder?
    &startId=`1`
    &level=`2`
    &limit=`3`
    &innerTpl=`ein-chunk`
]]

Plugins

Plugins bestehen genau wie Snippets aus PHP Code, mit dem Unterschied, dass sie nicht direkt aufgerufen werden, sondern einem Event zugeordnet werden. Events sind in MODX vordefiniert Aktionen zum Beispiel die eines Nutzers. Du könntest ein PHP Skript schreiben, dass jedes Mal ausgeführt wird, wenn ein Nutzer eine Seite aufruft. MODX kennt über hundert verschiedene Events.

Cache

MODX benutzt ein eigenes Caching-System zur schnelleren Auslieferung von Seiten. Grundsätzlich wird alles gecached, was MODX erzeugt oder von Dir definiert wird.

Bei den Ressourcen findest Du ein Häkchen, dass das Caching für eine einzelne Seite abschaltet. Auch alle Platzhalter (für Snippets, Plugins, Chunks) werden standardmäßig gecached.

Wenn Du Chunks, Platzhalter oder Snippets ungecached aufrufen willst, wird dem Aufruf ein Ausführungszeichen vorangestellt.

[[!Wayfinder? &startId=`1`]]

ID

Jedes Element im Backend (Template, Resource, Chunk, Snippet) hat eine eigene ID. Die IDs findest Du zum Beispiel hinter jeder von Dir erstellten Ressource.

IDs kann man verwenden um einen Link dynamisch zu erzeugen. Der Vorteil bei der Verwendung von IDs ist, dass wenn Du Deine Ressource umbenennst, eigentlich ja auch alle Stellen ändern musst, wo Du diesen Verweis benutzt hast. Anstelle des von Dir vergebenen Namens nimmt man die ID, denn die ändert sich nicht. Auf die Stelle, wo Du Deine Ressource erstellt hast, ist vollkommen egal. Selbst wenn Du Deine Seiten umsortierst, die ID funktioniert immer.

Das folgende Beispiel ruft das Impressum auf. Die Impressum-Seite hat in diesem Fall die ID 12:

Impressum

Kontext

Kontexte können zur Strukturierung von Inhalten verwendet werden, für Sprachversionen Deiner Seite, oder zur Verwaltung von mehreren Domains oder Subdomains. Wie das geht, erklären wir später. Kontexte gibt es nur in MODX Revolution.

Kategorien

Kategorien dienen in erster Linie zur Strukturierung Deiner Templates, Chunks, Snippets etc. Eine wichtige Rolle spielen Kategorien bei der Rechteverwaltung. Falls Du auf Deiner Seite Nutzer mit unterschiedlichen Rechten im Backend anlegen willst, kannst Du Kategorien benutzen, um bestimmte Elemente vor dem Nutzer zu sperren bzw. auszublenden.