Moduldateien

Jedes WebsiteBaker Modul besteht aus einer Ansammlung von Textdateien (PHP, HTML, Javascript, CSS). Dieses Kapitel stellt die zur Verfügung stehenden Dateien und deren Verwendungszweck abhängig von der Modulart zusammen. Das Wissen über den Aufbau von Modulen ist eine Grundvoraussetzung, um eigene Module und Erweiterungen entwickeln zu können.

Zwingend notwendige Dateien (alle Modularten)

Es gibt zwei Dateien, die für alle Module zwingend vorgeschrieben, oder empfohlen sind:

  • info.php: enthält Informationne über Speicherort, Modulart, Autor, Beschreibung, Lizenz
  • index.php: verhindert Auflistung des Modulverzeichnisses; Schutz vor Hackerangriffen

Datei info.php (erforderlich): 

 

<?php
/**
  Copyright (C) 2007, Christian Sommer 
 
  This module is free software. You can redistribute it and/or modify it under
  the terms of the GNU General Public License - version 2 or later, as published
  by the Free Software Foundation: http://www.gnu.org/licenses/gpl.html.
 
  This module is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  GNU General Public License for more details.
 
 -------------------------------------------------------------------------------
  Modul: XXX für WebsiteBaker v2.6.x (http://www.websitebaker2.org)
  Modulbeschreibung
 -------------------------------------------------------------------------------
   v0.10  (Christian Sommer; 11.06.2007)
    + initial release of the module
 -------------------------------------------------------------------------------
**/
 
$module_directory     = 'gewünschtes Modulverzeichnis angeben';
$module_name          = 'Modulname angeben (wird als Seitenart angezeigt)';
$module_function      = 'page, tool oder snippet';
$module_version       = '0.10';
$module_platform      = '2.6.x';
$module_author        = 'Christian Sommer';
$module_license       = 'GNU General Public License';
$module_description   = 'Kurzbeschreibung des Moduls';
?>

 

Nach dem öffnenten PHP Tags (<?php) folgt ein mehrzeiliger Kommentarblock (/** ... **/) mit optionalen Angaben zur gewählten Lizenz, einer Haftungsausschlussklausel und der Entwicklungshistorie.

Über die Variablen werden Informationen über das Modul bereitgestellt (siehe Beschreibung). Die Variable $module_function legt fest, ob das Modul als Seitenmodul (page), Verwaltungsprogramm (tool) oder Zusatzfunktion (snippet) ausgeführt werden soll. Die info.php endet mit einem schliessendem PHP Tag (?>).

Datei index.php (empfohlen): 

Diese Datei verhindert, dass bei mangelnder Konfiguration des Servers die Dateien und Verzeichnisse innerhalb des Modulverzeichnisses im Browser dargestellt werden. Diese Datei verhindert das aufspüren möglicher Angriffsstellen. 

<?php
header('Location: ../index.php');
?>

Optionale Dateien (alle Modularten)

Nachfolgende Dateien können vor dem Installieren und Deinstallieren von Modulen ausgeführt werden. Die Dateien werden automatisch über das WB Backend: Erweiterungeng -> Module -> Modul installieren / Modul deinstallieren aufgerufen.

  • install.php: Wird aufgerufen wenn das Modul noch nicht existiert. Nützlich, um z.B. Datenbankentabellen anzulegen oder Dateien zu kopieren.
  • upgrade.php: Wird aufgerufen, falls das Modul bereits existiert. Nützlich, um z.B. einen Wert zur existierenden Datenbank hinzuzufügen, Dateien auszutauschen...
  • uninstall.php: Wird, falls vorhanden, beim Deinstallieren über das WB Backend aufgerufen. Sollte für das löschen eventuell angelegter Modultabellen verwendet werden.

Der Inhalt ist je nach Verwendungszweck unterschiedlich. Als Beispiel kann das Hello World Module herangezogen werden.

Moduldateien: Seitenmodule

Um ein Seitenmodule zu erstellen, muss die nachfolgende Variable in info.php wie folgt gesetzt werden:

$module_function = page;

Für Seitenmodule stehen die nachfolgenden Dateien zur Verfügung:

  • view.php: Über diese Datei wird die Ausgabe für das Frontend gesteuert
  • modify.php: Die Vewaltungszentrale des Moduls. Diese Seite wird aufgerufen, wenn im Backend: Seiten -> Seitentitel angeklickt wird. Über diese Datei werden alle Funktionen im Backend bereitgestellt.
  • add.php: Wird aufgerufen, wenn eine neue Seite/Abschnitt mit dieser Modulart angelegt wird. Nützlich um Datenbankfelder etc. für eine neue Seite anzulegen.
  • delete.php: wird aufgerufen, wenn eine Modulseite/Abschnitt mit dieser Modulart gelöscht wird

Der Inhalt ist je nach Verwendungszweck unterschiedlich. Als Beispiel kann das Hello World Module herangezogen werden.

Moduldateien: Verwaltungsprogramme

Um ein Seitenmodule zu erstellen, muss die nachfolgende Variable in info.php wie folgt gesetzt werden:

$module_function = tool;

Für Verwaltungsprogramme steht nachfolgende Dateien zur Verfügung:

  • tool.php: Die Datei wird nach Klick auf einen Link im Backend: Optionen -> Erweiterte Optionen -> Verwaltungsprogramme -> Verwaltungsprogrammlink aufgerufen.

Moduldateien: Zusatzfunktionen

Um Zusatzfunktionen zu erstellen, muss die nachfolgende Variable in info.php wie folgt gesetzt werden:

$module_function = snippet;

Funktionen die in nachfolgender Datei enthalten sind können in der index.php Datei des Templates oder von einer Seite/Abschnitt vom Typ Code aufgerufen werden.

  • include.php: Die Datei wird beim Anzeigen eines Templates oder beim Wechsel ins Backend automatisch eingebunden.