Klassen und Funktionen

Klassen und Funktionsbibliotheken sind im Ordner framework/ abgelegt. Eingerückte Klassen sind von der übergeordenten Elternklasse abgeleitet (extended). Sie erben die Funktionen der Elternklasse und erweitert diese um eigene. Die wichtigsten Klassen und Funktion sind nachfolgend aufgelistet.

Klasse: class.wb.php

Diese Klasse beinhaltet die Kernfunktionen von WebsiteBaker und wird vor dem Anzeigen von Seiten des Front- und Backends geladen. Die Klasse stellt Funktionen bereit, um per GET, POST oder SESSIONS übertragene Daten zu filtern und auszulesen. Hier werden auch die im vorigen Kapitel beschriebenen $_SESSION Variablen initialisiert. Weiterhin enthält die Klasse Funktionen um die Zugangsberechtigung des aktuellen Benutzer zu überprüfen.

Klasse: class.frontend.php

Diese Klasse ist von class.wb.php abgeleitet. Hier sind alle Funktionen versammelt, die notwendig sind, um eine Seite im Frontend aufzurufen. Nach Eingabe von http://domain.de oder http://domain.de/pages/xx.php wird die Datei http://domain.de/index.php aufgerufen. Diese Datei ruft die Klasse class.frontend.php auf und führt die darin enthaltenen Funktionen aus. Die Reihenfolge der Funktionsaufrufe kann nachfolgendem Flussdiagramm entnommen werden.

Flussdiagramm Frontend

Flussdiagramm mit Referenz der Klassen/Funktionsaufrufe beim Anzeigen einer Seite im Frontend

Klasse: class.admin.php

Diese Klasse ist von class.wb.php abgeleitet. Sie wird immer dann aufgerufen, wenn eine Seite im WB Backend angezeigt wird. Diese Klasse prüft ob der Benutzer bereits angemeldet ist. Sollte dies noch nicht geschehen sein, wird er zur Loginseite umgeleitet. Ist der Benutzer bereits angemeldet, werden die für Ihn zugänglichen Bereiche ermittelt und angezeigt.

Klasse: class.login.php

Diese Klasse ist von class.admin.php abgeleitet. Der Aufruf erfolgt entweder über http://domain.de/login/index.php oder über class.admin.php (wenn Benutzer noch nicht angemeldet ist). Diese Klasse enthält alle Funktionen, die für den Anmeldeprozess benötigt werden (Abgleich Benutzereingaben mit Datenbank, Loginversuch, Anmeldung, Auslesen der Benutzerinformationen ...).

Klasse: class.database.php

In dieser Datei sind die beiden Klassen: database und mysql definiert. Die Klasse database enthält alle Methoden, um eine Verbindung mit der WB Datenbank herzustellen, Abfragen durchzuführen und die Verbindung zur Datenbank zu schliessen. Die Klasse mysql enthält die auf ein Ergebnisobjekt der Klasse database anwendbaren Methoden. Die wichtigsten sind nachfolgend aufgelistet:

  • database::query(): führt eine Datenbankabfrage aus und gibt ein Abfrageergebnis-Objekt zurück
  • database::get_one(): gibt Inhalt des ersten Feldes aus dem ersten gefundenen Datensatz einer Abfrage zurück
  • mysql::numRows(): gibt die Anzahl der gefundenen Datensätze zurück
  • mysql::fetchRow: beginnend vom ersten, liefert jeder Aufruf dieser Methode den jeweils nächsten Datensatz eines Abfrageergebniss-Objektes

Klasse: class.wbmailer.php

Diese Klasse wurde mit WB 2.6.5 eingeführt und ist von der Klasse PHPMailer abgeleitet.
PHPMailer ist ein externes Open Source Projekt, das Funktionen zum Versenden von Emails bereitstellt. Diese Klasse wird in vielen Projekten, wie z.B. Joomla verwendet.

Die Klasse class.wbmailer.php liest die Konfigurationseinstellungen von WB aus und setzt Standardwerte für: Sprache, Zeichensatz (z.B. utf8), Absendernamen, Emailadresse des Absender (FROM:), Zeilenumbruch (nach 80 Zeichen).

Klasse: class.order.php

Diese Klasse ist ausschliesslich für die Sortierung der erstellten Seiten zuständig. Verschiebt man eine erstellte Seite im WB Backend an eine andere Stelle, wird diese Klasse aufgerufen. Die Klasse übernimmt die Aktualisierung der Datenbank, wenn Seiten im WB Backend verschoben werden. Die darin enthaltenen Funktionen sind für den Modulentwickler nicht sonderlich intersannt.

Funktionen: frontend.functions.php

Diese Funktionsbibliothek hält nützliche Funktionen für das Frontend bereit. Die wichtigsten Funktionen sind:

  • show_menu(): ersetzt page_menu und bietet mehr Möglichkeiten, das Menü zu gestalten)
  • page_content(): zeigt den Inhalt des übergebenen Blocks an (Default:= 1)
  • show_breadcrumbs(): zeigt den Pfad zur aktuellen Seite an
  • page_title(): zeigt den Titel der Webseite an
  • page_description(): zeigt die Beschreibung der Seite an (META tags)
  • page_keywords(): zeigt die Schlüsselwörter für Suchmaschinen an (META tags)
  • page_header(): gibt die Kopfzeile aus
  • page_footer(): gibt die Fusszeile aus
  • register_frontend_modfiles(): bindet optionale frontend.css und frontend.js Dateien von Modulen in den <head> Abschnitt des Templates. Somit können Module (X)HTML valide Seiten generieren

Funktionen: functions.php

Diese Funktionsbibliothek enthält Funktionen für das Dateihandling und könnte daher bei der Erstellung eigener Modul hilfreich sein. Die wichtigsten Funktionen sind nachfolgend aufgelistet:

  • rm_full_dir(): löscht das angegebene Verzeichnis samt Dateien und Unterordner
  • directory_list(): gibt ein Array mit allen Unterverzeichnis ausgehend von einem bestehenden Verzeichnis aus
  • chmod_directory_contents: rekursive Änderung der Berechtigungen für alle Dateien und Verzeichnise
  • file_list(): gibt ein Array mit allen Dateien eines Verzeichnises zurück (Dateien können ausgeschlossen werden)
  • get_home_folders(): gibt ein Array mit allen verfügbaren Homeverzeichnissen an
  • make_dir(): erstellt eine neues Verzeichnis
  • change_mode(): ändert Berechtigungen für Dateien und Verzeichnisse
  • is_parent(): prüft ob die angegebene Seite ein übergeordnetes Menü (parent) besitzt
  • level_count(): gibt Menütiefe (level) der angegebenen Seite aus
  • root_parent(): gibt die PAGE_ID der übergeordneten Seite (parent) aus
  • get_page_title(): gibt Seitentitel der Seite aus
  • get_menu_title(): gibt Menütitel der Seite aus
  • get_parent_titles(): gibt Seitentitel aller übergeordenten Seiten aus
  • get_parent_ids(): gibt PAGE_IDs aller übergeordenten Seiten aus
  • get_page_trail(): gibt den page trail aus
Hinweis:
Bevor Du eine Funktion neu programmierst, schau zuvor in die functions.php. Vielleicht gibt es dort schon eine Funktion, welche die gewünschte Aufgabe erledigt.