Developers Blog Nachfolgend ein paar Gedanken und erste Ansätze zu der neuen, entwickler- und benutzerfreundlichen Struktur in unserem neuen CMS. Es zeigt einen Weg ohne alte, festgefahrene Standards und den Abschied von bremsenden Altlasten.

Das Hauptanliegen war, weg zu kommen von den 3 pragmaMx-Grunddateien, admin.php, index.php und modules.php. Das hat verschiedene Beweggründe.
  • Fremdscripte können viel leichter portiert werden, weil das Umschreiben der URL wegfällt. Die Scripte können in ihrem Unterordner direkt verwendet werden.
  • Modulentwickler sind bedeutend freier in der Gestaltung ihrer Programme.
  • Der Aufwand zur Suchmaschinenoptimierung wird einfacher weil etliche Übergabeparameter in der URL wegfallen.
  • Das Berechtigungssystem mit Session und allem Drum und Dran steht auch in beliebigen Unterordnern zur Verfügung.
  • Durch das Verlassen dieser Strukturen, kommen wir endlich weg, vom phpNuke Image, weil Niemand mehr ein nuke an der modules.php zu erkennen glaubt. Das hat den Vorteil, dass wir dadurch sofort sämtliche Versuche an nuke-Hackereien los sind.

Erreicht wird das Ganze durch eine Initialisierungsdatei „.init.php“, die im Prinzip die gleiche Funktion hat, wie vorher die mainfile.php. Sie stellt alles was das System an Einstellungen und Dateien benötigt zur Verfügung. Diese Datei muss in allen Dateien, die irgendwo in einem Unterordner direkt aufgerufen werden sollen includet werden. Dieses Include geschieht automatisch durch das durchlaufen der Ordnerstruktur oberhalb des Scriptes, bis diese Datei gefunden und includet wird. Diese 3 zusätzlichen Zeilen ersetzen den Check, ob diese Datei direkt augerufen wurde, was ja dann ausdrücklich erwünscht ist.

Ab diesem Moment steht diesem Script die gesamte pragmaMx Funktionalität zur Verfügung. Im pragmaMx-Root wird dann nur noch die index.php als Homepage benötigt und diese Initialisierungsdatei, die aber schon durch den führenden Punkt im Dateinamen gar nicht aufgerufen werden kann.

Im pragmaMx-Root befinden sich nur noch 3 Ordner, die fest vom System vorgegeben sind.

  • Im Ordner „System“ befinden sich alle Includes, Klassen, Konfigurationsdateien usw. In diesem Ordner dürfen keine Dateien direkt aufgerufen werden, mit Ausnahme der, zu den Wysiwyg Editoren gehörenden Dateien.
  • Der Ordner „themes“ enthält wie bisher die Themes, die aber intern eine völlig andere Struktur aufweisen werden.
  • Letztendlich der Ordner „admin“. Dieser enthält, wie der Name sagt alle Dateien die zur Administration des Grundsystems gehören. Module und Addons dürfen hier keine Dateien ablegen, die bringen ihre eigene beliebige Ordnerstruktur in ihrem Unterordner mit. Die Dateien im admin-Ordner können in beliebigen Unterordnern angeordnet werden, sie werden alle direkt aufgerufen, der Umweg über die admin.php entfällt. Diese Dateien verwenden nicht das Theme/Layout des eigentlichen CMS, sondern es existiert ein völlig unabhängiges, dezent und einfach aufgebautes, eigenes Administrations Layout.

Alle Module, Addons, Plugins, oder wie diese Zusätze letztendlich benannt werden, haben keinen vorgegebenen Ablageplatz innerhalb der Ordnerstruktur.

Wobei es durchaus möglich ist, dass sich im Laufe der Entwicklung hier noch etwas ändert. Das hier geschriebene ist bisher nur in einem ersten Entwurfszustand und muss sich noch als praktikabel bewähren.