Eigene Module programmieren

Fast jeder Kunde hat mindestens einen Sonderwunsch der mit HTML nicht umsetzbar ist. Dann bietet sich eine Lösung mit PHP an. Im Gegensatz zu anderen Systemen muss man im WEButler bei der Programmierung einer Erweiterung nicht allzuviel beachten.

Include

Eine Erweiterung wird einfach per include in eine Seite geladen. Damit ist die Erweiterung ein Teil der Seite und alle Pfade der Erweiterung müssen entsprechend angepasst werden (modules/__MODULVERZEICHNIS__/...).

Modul-Suchplugin

Ein eigenes Modul kann in die WEButler-Suchfunktion integriert werden. Dafür muss die Datei search.php existieren und in der search.php die Funktion searchinmodcontent_ __MODUL_VERZEICHNISNAME__. Die Funktion muss ein Array mit Titel, Inhalt und URL zurück liefern. Beispiel:

return array(
'title' => 'Seitentitel',
'contents' => 'Seiteninhalt mit Suchbegriff',
'url' => '__SEITENNAME__&var=wert'
);

Damit die WEButler-Suche das Modul auch findet muss es noch in die Datei /settings/searching.php eingetragen werden.

Modul-Sitemap

Ein eigenes Modul in die Sitemap aufzunehmen funktioniert nach dem gleichen Schema, wie die Integration in die Suche. Die Datei sitemap.php muss im Modulverzeichnis existieren und in der Datei die Funktion modulessitemap_ __MODUL_VERZEICHNISNAME__.

Die Funktion muss ein Array mit den URLs des Modules und optional einem Zeitstempel der letzten Bearbeitung sowie hreflang URLs liefern - weitere Infos

Außerdem muss das Modul in der Datei /settings/sitemaps.php eingetragen werden.

Header- / Footerdaten

Javascripte und CSS-Dateien eines Moduls müssen in der Datei /settings/compress.php eingetragen werden. Zusätzliche Daten für den Header oder Footer können mittels $webutlercouple->autoheaderdata[] bzw. $webutlercouple->autofooterdata[] in die Seite geladen werden.

$webutlercouple->autoheaderdata[] = '<meta name="Bezeichnung" content="Inhalt" />';
$webutlercouple->autofooterdata[] = '<script src="externes_script.js"></script>';

Der Titel der WEButler-Seite kann mit der Variablen $webutlercouple->setnewtitlefrommod durch einen spezielleren Titel aus dem Modul ersetzt werden.

$webutlercouple->setnewtitlefrommod = 'Mein neuer Seitentitel';

Modul-Login

Wenn das Modul einen Administrationsbereich besitzt/bekommen soll, gibt es mehrere Möglichkeiten für einen Login:

  1. Für den automatischen Login des Seitenbetreibers kann mit der Funktion $webutlercouple->checkadmin() geprüft werden, ob die Sessiondaten des Administrators gesetzt sind.
  2. Alternativ kann eine eigene Loginverwaltung für Benutzer, die nur Zugriff auf das Modul erhalten sollen, erstellt werden.

Admintoken

Für Administratoren wird beim Login ein Admintoken in die Session gesetzt. Der Admintoken kann mit $webutlercouple->checktoken() geprüft und mit "&admintoken=<?PHP echo $_SESSION['admintoken']; ?>" weitergereicht werden.

Lese- / Schreibzugriff

Für die Realisierung eines Lese- und/oder Schreibzugriffs eingeloggter WEButler-User können folgende Sessiondaten eines Benutzers abgefragt werden:

Gruppen-ID: $_SESSION['userauth']['groupid']
ID des Benutzers: $_SESSION['userauth']['userid']
Benutzername: $_SESSION['userauth']['username']
eMail-Adresse: $_SESSION['userauth']['usermail']

Benutzerverwaltung

In der Benutzerverwaltung können User aktiv, gesperrt oder gelöscht geschaltet werden. Wenn der Status in einem Modul benötigt wird, muss dieser in der User-DB abgefragt werden. Rückgabewerte:

Aktiv: status='enabled'
Gesperrt: status='disabled'
Gelöscht: status='deleted'