WebsiteBaker modules bestaan uit tekst-bestanden, zoals PHP, HTML, Javascript en CSS. Dit hoofdstuk geeft een korte introductie van de verschillende module bestanden en hun doelstelling, afhankelijk van het type module. Dit is de basiskennis die men minimaal nodig heeft voor het aanmaken van eigen modules.

Essentiële bestanden (alle module typen)

Er zijn twee bestanden die vereist zijn (of aanbevolen) voor alle modules:

  • info.php: bevat informatie over de module-directory, type module, auteur, omschrijving, licentie
  • index.php: dit bestand voorkomt het tonen van een lijst met bestanden in deze module

<?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';
?>

De openende PHP tag (<?php) wordt gevolgd door een commentaar blok (/** ... **/), welek voorziet in extra informatie over de gekozen module licentie, een disclaimer, en de historie van de module-ontwikkeling. 

De module variabelen voorzien in de benodigde informatie voor WebsiteBaker. De variabele $module_function bepaald of de module een pagina type (page), een beheer tool (tool) of een code snippet (snippet) is. Het bestand info.php eindigd met een afsluitende PHP Tag (?>).

Bestand index.php (aanbevolen): 

Het bestand index.php voorkomt het tonen van een lijst met folders en bestanden in de module directory, onafhankelijk van de serverinstellingen. Dit is een simpele methode om de veiligheid te verbeteren, omdat hierdoor geen extra informatie getoond wordt over de module architectuur.

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

Optionele bestanden (alle module typen)

De volgende bestanden zijn optioneel en kunnen gebruikt worden om code uit te voeren tijdens het installatie- en verwijder-proces. Deze bestanden worden automatisch aangesproken en uitgevoerd via de WebsiteBaker backend: Extra's -> Modules -> Installeer Module / Verwijder Module.

  • install.php: wordt uitegvoerd als de module nog niet bestaat. Bruikbaar om database tabellen toe te voegen of vereiste module-bestanden te kopiëren
  • upgrade.php: wordt uitgevoerd als de module wel al bestaat. Bruikbaar om een extra database veld toe te voegen in de database of voor het vervangen van module bestanden...
  • uninstall.php: wordt uitgevoerd als de module wordt verwijderd. Dient gebruikt te worden om module databases te verwijderen, die aangemaakt werden tijdens het installatie-proces.

De inhoud van deze bestanden is afhankelijk van het doel van de module. Een voorbeeld van een werkend exemplaar kan gevonden worden als Hello World module in de Add-Ons Repository. 

Module bestanden: pagina type modules

Een pagina type module vereist het opgeven van de variabele in het bestand info.php als volgt:

$module_function = page;

Pagina type modules kunnen de volgende bestanden bevatten:

  • view.php: definiëert de inhoud die getoond wordt als de pagina bekeken wordt op de frontend
  • modify.php: wordt gebruikt als de pagina bekeken wordt in de backend via: Pagina's -> klik op pagina-titel. Dit bestand bevat de backend functies en instellingen die beschikbaar zijn in de backend. 
  • add.php: wordt uitgevoerd als een nieuwe pagina/sectie van het module type toegevoegd wordt via de WB backend. Bruikbaar om toevoegingen/wijzigingen te doen aan de database.
  • delete.php: wordt uitgevoerd als een pagina/sectie van dit module-type wordt verwijderd via de WB backend. Bruikbaar om informatie te verwijderen uit de database voor deze pagina/sectie

De inhoud van deze bestanden in afhankelijk van het doel van de module. Een voorbeeld van een werkend exemplaar kan gevonden worden als Hello World module in de Add-Ons Repository. 

Module bestanden: Beheer tools

Een beheer tool vereist het opgeven van de variabele in het bestand info.php als volgt:

$module_function = tool;

Beheer tools bevatten het volgende bestand: 

  • tool.php: wordt uitgevoerd als men klikt op de module-link in de WB backend: Instellingen -> Bekijk geavanceerde opties -> Beheersinstellingen 

Module Bestanden: Code Snippets

Een code snippet vereist het opgeven van de variabele in het bestand info.php als volgt:

$module_function = snippet;

Alle functies in het volgende bestand kunnen aangesproken worden vanuit het bestand index.php van het template of via een pagina/sectie van het type Code:

  • include.php: Wordt automatisch toegevoegd door WB voor de front- en backend. Functies die in dit bestand staan, kunnen worden aangesproken via een pagina van het type Code of in het bestand index.php van het template.