Jedes Modul hat vordefinierte Dateien, die Sie nutzen können, um bestimmte Funktionen auszuführen. Dies spart Ihnen als Programmierer Zeit und vor allem die Muße, Dateien des Kernsystems zu ändern.

Die Dateien des Moduls
Sie können folgende Dateien einsetzen bzw. sollten sie kennen, dabei bezieht sich der angegebene Dateiname auf modules/MODULNAME/:

  • config.php: Diese Datei wird beim Aufruf des Moduls automatisch von der load.php geladen
  • functions.php: Hier können Sie Funktionen und Vorgaben definieren, die im gesamten Modul gelten sollen. Beim Aufruf eines Moduls über load.php oder admin.php sowie über load_functions(MODULNAME) wird diese Datei geladen
  • mainfile-functions.php: Was Sie hier definieren, wird vom Kernsystem geladen. Sie können hier Funktionen definieren, die im gesamten Kernsystem gelten sollen oder bei jedem Aufruf einer Seite ausgeführt werden müssen. Ebenfalls können Sie hier modRewrite Regeln oder zwingende CSS Dateien definieren.
  • admin/admin-functions.php: Hier liegen Funktionen und Inhalte, die im gesamten Adminbereich zur Verfügung stehen sollen.
  • description.php: Beinhaltet Angaben zum Modul, etwa Name und Beschreibung
  • version.php: Beinhaltet die Versionsnummer des Moduls
  • depend.php: Definiert Abhängigkeiten des Moduls
  • install.php und deinstall.php: Beinhaltet Funktionen zum Installieren und Deinstallieren des Moduls
  • update.php: Dient dem Updaten beim Versionswechsel des Moduls - z.B. um Datenbanktabellen anzupassen.
  • pdfcase.php: Angaben zur Erstellung von PDF-Inhalten des Moduls über das Modul PDF
  • printcase.php und print.php: Angaben zur Erstellung von druckbaren Inhalten des Moduls über das Modul Print
  • sitemap.php: Integration des Sitemapmoduls in das eigene Modul, dazu auch die Seite Entwickler.Sitemap
  • adminpanel_frontend.php: Zeigt beim funktionalen Aufruf des Modul diese Datei an, wird sowohl im Header als auch im Footer geladen, sofern der zugreifende Adminrechte für das entsprechende Modul hat. Hier können Adminoptionen etc. stehen


  • Verzeichnis /language: Hier liegen die Sprachdateien, dazu auch die Seite Entwickler.Sprachsystem
  • Verzeichnis /search: Hier liegen die Dateien zur Such-Integration, dazu auch die Seite Entwickler.Search?
  • Verzeichnis /admin: Hier liegen die Dateien zur Admin-Integration, dazu auch die Seite Entwickler.Adminbereich?
  • Verzeichnis /blocks: Hier werden Blöcke hinterlegt, dazu siehe auch die Seite Entwickler.Blöcke
  • Verzeichnis /infos: Hier liegen die Info-Texte des Moduls für den Adminbereich zum Abruf

Performance und Vorgaben zur Nutzung
Die Dateien mainfile-functions.php und admin-functions.php können bei unbedachter Nutzung die Performance des Systems sehr stark beeinträchtigen. Sollten Sie als Entwickler diese Dateien einsetzen wollen, beachten Sie die folgenden Hinweise unbedingt:
Die mainfile-functions.php wird auf jeder Seite des CMS geladen. Platzieren Sie hier nur die Inhalte, die wirklich nötig sind und bei denen es sinnvoll ist, diese immer zu laden.
Die admin-functions.php wird auf jeder Seite des Adminbereichs geladen, hier gilt also die gleiche Vorgabe: Nur einbinden, was wirklich überall im Adminbereich zur Verfügung stehen muss oder soll.
Bei beiden Dateien geht es nur um Inhalte, die für das System insgesamt oder für andere Module notwendig sind. Sollten Sie einfach eine praktische Lösung suchen, um zentral Funktionen zu definieren, nutzen Sie immer die functions.php. Hier hinterlegen Sie alle Funktionen, auch für den Adminbereich, die das Modul selber braucht. Im Adminbereich wird beim Aufruf des Moduls die functions.php ebenfalls geladen.
Sollte ein anderes Modul auf Funktionen Ihres Moduls zugreifen sollen, kann dieses mit load_functions() arbeiten, es ist nicht nötig, deswegen gleich diese beiden wichtigen Dateien zu füllen.

Beispiel: Ihr Modul berechnet Statistiken, etwa die Zahl von Zugriffen auf einen Inhalt. Wenn der Adminbereich nun an verschiedenen Stellen anzeigen soll, wie oft ein Zugriff stattfand, ist es durchaus sinnvoll, eine Funktion zur Rückgabe der Zahl in die admin-functions.php zu legen.
Sollten Sie dagegen nur Funktionen definieren, die kein anderes Modul aufruft, gehört das ganz in die functions.php.

Splitten von Dateien
Gerne teilen Programmierer auf, etwa dass Funktionen für den Adminbereich in einer eigenen Datei liegen. Die functions.php mit ihrem zentralen Charakter ist da vielen ein Dorn im Auge - muss aber nicht sein.
Legen Sie einfach zwei Dateien an, etwa functions_func.php und functions_admin.php in Ihrem Modul. In der functions.php dann laden Sie die beiden:

 include("functions_func.php");
 include("functions_admin.php");

Dieses Vorgehen schafft am Ende maximale Freiheit, so können Sie gezielt Funktionen laden, wenn ein Admin unterwegs ist

 include("functions_func.php");
 if(is_admin()) include("functions_admin.php");

oder auch wenn der Adminbereich aufgerufen wird

 include("functions_func.php");
 if($GLOBALS['adminphp']) include("functions_admin.php");