ModX Tutorial

Changing the net, one site at a time…

Snippets

Definition

Snippets
Snippets sind Inhalte, welche nicht aus HTML bestehen, z.B. PHP-Scripte. Über Snippets können PHP-Scripte in Dokumente oder Templates eingebunden werden und somit dynamische Seiten erstellt werden. Sie werden über den Platzhalter eingebunden.

MODx hat bei der Installation bereits einige häufig benötigte Snippets installiert. Dazu gehören Scripte zur Anzeige von formatierten Listen von Dokumenten im Dokumentenbaum (Ditto) und Breadcrumb-Navigationen (Breadcrumbs). Mit einem Klick auf den Namen des Snippets kann der Quellcode eingesehen werden, hier befindet sich im Normalfall auch eine ausführliche Dokumentation über die Verwendung und Konfiguration des Snippets. Diese ist allerdings normalerweise auf Englisch!

Das in ModX wohl nützlichste Snippet ist das Wayfinder-Snippet. Ein MODx-Snippet ist im Prinzip ein PHP-Skript, das ausgeführt wird, wenn die Seite aufgerufen wird. Das Hinzufügen eines Snippets zu einem Dokument erfolgt mittels eines Calls, der gecacht [ [wayfinder]] oder ungechacht [ !wayfinder]] erfolgen kann. Snippets sind im Standard-PHP-Code geschrieben, so dass jeder, der PHP beherrscht, einfach seine eigenen Snippets erstellen kann. MODx verfügt auch über eine leistungsstarke API, welche auf einfache Weise die Nutzung von MODx-Klassen und den Zugriff auf die MODx-Datenbank ermöglicht.

Der Wayfinder gibt, je nach der Hierarchie im Dokumentbaum, die Seitenstruktur aus. Standardmäßig erzeugt der Wayfinder die Ausgabe als verschachtelte UL-Liste, was gleichzeitig auch der Standard CSS-gestalteter Menüs ist. Der Wayfinder lässt sich recht leich mit Hilfe von Template-Chunks anzupassen, welchen dann für die Formatierung verantworlich sind. Wer keinen Chunk anlegen möchte, kann den Wayfinder auch in einen DIV integrieren und diesem eine ID oder eine Klasse zuweisen, die dann die Menüsteuerung stylt. Auch man mehrere Menüs auf ein und derselben Seite hat, kann jedes einzelne von einem separaten Stylesheet definiert werden.

Über den folgenden Call wird der Wayfinder aufgerufen: [ [Wayfinder? &startId=`0`]].

Beim Anlegen einer zweiten Navigationsebene muss aber beachtet werden, dass man den Call innerhalb des für die Navigation vorgesehenen DIVs in <ul>-Tags einbettet, sonst verweigert dieser den Dienst.
<ul>
[ !Wayfinder?startId=`[ [UltimateParent?topLevel=`1`]]` ! ]</ul>


Wichtig ist auch die Verschachtelung des Calls in nicht gecacht / gecacht. Der Wert, der beim UltimateParent einzustellen ist, entspricht der Ebene der Navigationshierarchie, in der der Wayfinder aufgreufen wird.