Erweiterung durch eigene Extensions

Durch das Programmieren von Klassenmethoden lässt sich das CMS (neben der Installation fertiger Pakete) am einfachsten erweitern. Allerdings bestehen einige Einschränkungen, was Dateinamen oder zusätzlicher Ressourcen anbelangt.

Die Erweiterungen über sogenannte Extensions geht genau über diese Einschränkungen hinaus. Jede Extension verfügt über ein eigenes Verzeichnis mit dem Pfad nach dem Schema /cms/ext/[a-z0-9_]+ , wobei der letzte Teil der von Ihnen vergebene Extension-Name ist. Extension-Namen im globalen Raum (die Sie zB. anderen zur Nutzung anbieten können) dürfen nicht mit einem '_' beginnen. Eigene Extensions sollten tunlichst einen Namen haben, der mit einem '_' beginnt, um Kollisionen mit anderen Extensions zu verhindern.

Unterhalb des Extension-Verzeichnisses haben Sie jede Freiheit. Im eigenen Interesse sollten Sie dennoch darauf bedacht sein, den Namensraum von Klassen, Funktionen und globalen Variablen möglichst von anderen Erweiterungen und vom CMS zu trennen.

In der Regel werden Extensions über Klassen und Module genutzt. Das bedeutet, dass die Klassendefinition, die zugehörigen Module und die Extension dann eine Einheit bilden. Ein Paket steht für die einfache Transportmöglichkeit all dieser zusammenhängenden Daten und Dateien.