Beispielmodul (Hello World)

Der Tradition zahlreicher Programmierhandbücher folgend, werden die Grundlagen zur Erstellung eigener Seiten-Module anhand eines "Hello World"-Moduls vorgestellt.

Für Admin-Tools und Snippets gibt es keine Beispielmodule. Sie können sich bestehende Module anschauen, um die grundsätzliche Funktionsweise nachzuvollziehen.

Das "Hello World"-Modul erfüllt keinen großen Zweck. Es stellt im Backend lediglich ein Textfeld für eine kurze Mitteilung bereit, welche dann im Frontend ausgegeben wird. Als Standardtext wird Hello world ausgegeben.

Download "Hello World" Modul

Alle im Modularchiv enthaltenen Dateien enthalten Kommentare, die den Sinn der jeweiligen Datei und die verwendeten Variablen und Funktionen erläutern (Englisch). Es werden alle wichtigen Aspekte angesprochen, von der Kommunikation mit der Datenbank über die Verwendung externer Stylesheets oder Javascript-Dateien bis hin zu Mehrsprachigkeit. Wo nötig, werden Aspekte zum Absichern des Moduls gegen SQL-Injections und XSS Angriffe erläutert.

Wichtig! Denken Sie daran, sich für Ihr Modul einen eigenen, eindeutigen Namen auszudenken und diesen konsequent auch für den Verzeichnisnamen und die Datenbanktabellen des Moduls beizubehalten! Verwenden Sie also weder "Hello World", noch die Namen bestehender Module, noch generische Bezeichnungen wie "Gallery" o.ä.!

add.php

Die Datei add.php wird beim Hinzufügen einer neuen Seite/eines neuen Abschnitts vom Typ "Hello world" aufgerufen. Die Datei fügt eine neuen Datensatz zur Tabelle mod_helloworld mit den Feldern PAGE_ID und SECTION_ID hinzu.

delete.php

Diese Datei wird automatisch beim Löschen einer "Hello World"-Seite/ eines "Hello World"-Abschnitts aufgerufen. Die Datei entfernt den Eintrag/die Einträge des/der zu löschenden Abschnit(te) aus der Tabelle mod_helloworld.

index.php

Die Datei index.php verhindert die Anzeige der im Modulordner enthaltenen Dateien und Verzeichnisse bei ungünstig konfigurierten Servern. Gibt ein Besucher die URL http://ihredomain.tld/modules/helloworld/ ein, wird er automatisch zur Startseite der Website umgeleitet. 

info.php

Hier werden zwingend benötigte Informationen, wie z.B. Speicherort, Modulname etc. gespeichert. Diese Datei kann auch für die Protokollierung von Moduländerungen genutzt werden.

install.php

Diese Datei wird automatisch beim Installieren über das Backend aufgerufen. Die Datei erstellt die Datenbanktabelle mod_helloworld für die Speicherung des Ausgabetextes und fügt Einträge zur Tabelle der Website-Suche (search) hinzu, so dass mit "Hello World" eingegebene Inhalte von der Suche erfasst werden.

modify.php

Die Datei wird beim Anzeigen einer Seite bzw. eines Abschnitts vom Typ "Hello World" im Backend aufgerufen. Die Datei enthält alle relevanten Modulfunktionen, also die möglichen Eingaben und Einstellungen, die ein Benutzer vornehmen kann.

Im "Hello World"-Beispielmodul wird ein HTML-Formular mit einem Textfeld und den Schaltflächen Speichern und Abbrechen bereitgestellt. Für die Formatierung der im Formular enthaltenen Tabelle werden CSS-Angaben aus der Datei backend.css verwendet.

Alle Überschriften, Texte und HTML-Elementbeschriftungen werden abhängig von der Spracheinstellung des gerade angemeldeten Benutzers ausgegeben. Das Modul unterstützt Deutsch und Englisch (Standard).

Ein Klick auf Abbrechen führt den Benutzer zur Seitenansicht zurück. Ein Klick auf Speichern ruft die Datei save.php auf, welche die HTML-Formularangaben filtert und in die Datenbank schreibt.

Zusätzlich wird noch ein Textlink angezeigt, der über die onClick-Methode eine externe Funktion aus der backend.js Datei aufruft, um den im Backend angezeigten Namen des Benutzer in einer Messagebox auszugeben.

save.php

Die Datei save.php wird nach Klick auf "Speichern" von der Datei modify.php aufgerufen. Die Datei nimmt die per POST übergebenen Variable $simple_output entgegen, entfernt alle möglichen HTML-, Javascript- und PHP-Tags und maskiert Sonderzeichen mittels \, um SQL-Injections zu vermeiden. Der so aufbereitete Text wird dann in das Feld simple_output der Modultabelle mod_helloworld geschrieben. Nach Ausgabe einer Statusmeldung wird der Benutzer zur modify.php Seite weitergeleitet.

uninstall.php

Diese Datei wird automatisch beim Löschen eines Moduls über das Backend aufgerufen. Die Datei löscht die Datenbanktabelle mod_helloworld und entfernt die "Hello World"-Einträge aus der Tabelle search.

view.php

Die Datei wird beim Anzeigen einer Seite/eines Abschnitts vom Typ "Hello World" im Frontend aufgerufen. Die Datei enthält alle relevanten Modulfunktionen für das Frontend.

Die view.php des Beispielmoduls gibt den in der Datenbank gespeicherte Ausgabetext aus. Für die Formatierung des Ausgabetextes werden CSS-Angaben aus der Datei frontend.css verwendet. Sämtliche Textausgaben erfolgen abhängig von der Spracheinstellung der angezeigten Seite. Das Modul unterstützt Deutsch und Englisch (Standard). Zusätzlich wird noch ein Textlink angezeigt, der über die onClick-Methode eine externe Funktion aus der frontend.js aufruft.

frontend.css / frontend.js

Die optionalen Dateien frontend.css und frontend.js können CSS-Anweisungen und Javascript-Funktionen für die Anzeige in der Datei view.php bereitstellen.

Dafür muss in der index.php des Templates folgender PHP-Code hinzugefügt werden. 

<head> 
// beliebige andere Inhalte des Heads...
<?php if(function_exists('register_frontend_modfiles')) {   
register_frontend_modfiles('css');   
register_frontend_modfiles('js'); } 
?> 
</head>
backend.css / backend.js

Die optionalen Dateien backend.css und backend.js können CSS-Anweisungen und Javascript-Funktionen für die Anzeige in der Datei modify.php bereitstellen.

Die beiden Dateien werden bei Vorhandensein automatisch geladen.