|
|
Entwicklung eigener Personal WebBase-Module
Da Personal WebBase noch in der Entwicklungsphase ist, kann sich die Modulstruktur ständig ändern.
Daher wird eine vollstände Anleitung zum Entwicklen von Modulen erst nach Version 1.0
herausgegeben. Sie können jedoch Ihre eigenen Module anhand von bestehenden Modulen erstellen,
indem Sie diese abändern. Bei der Modulentwicklung stehen Ihnen alle Möglichkeiten der Codeausführung offen.
Diese Anleitung soll Ihnen helfen, Ihre Module dem Personal WebBase-Standard anzugleichen. Sie dürfen uns
auch Ihre Module zuschicken, damit wir diese prüfen bzw. zertifizieren und ggf. veröffentlichen können.
Achtung! Diese Anleitung ist nur gültig für Personal WebBase Systeme ab Version 0.80!
Bei älteren Versionen können Module andere Strukturen aufweisen oder gewisse Sicherheitsmerkmale nicht besitzen!
Gängige Modul-Präfixe
- main_ bezeichnet Module, die ohne Login aufgerufen werden können (Modulrechte: -1)
- user_ bezeichnet Module, die durch Benutzer oder Gäste aufgerufen werden können (Modulrechte: 0, 1)
- admin_ bezeichnet Module, die nur durch Administratoren aufgerufen werden können (Modulrechte: 2)
- common_ bezeichnet Module, die keine sichtbare Oberfläche haben, sondern mit anderen Modulen oder der Datenbank Wechselwirken und Funktionen bereitstellen. (Modulrechte: -1)
Gängige Modul-Bestandteile
- autostart/[0|1|2|3|4].inc.php
Autostarter der Phase x. Bei den Autostarten werden grundlegende Funktionen festgelegt und alle Datenbanktabellen (neu)erstellt. Findet Personal WebBase bei Phase x keine Autostarter mehr, wird der Vorgang fortgesetzt, selbst wenn ein Modul noch einen Autostarter der Phase x+1 enthält. Übliche Verteilungen sind:
0: Absolut Grundlegende wb_ Funktionen, reservierter Bereich
1: Grundlegende Funktionen werden definiert, Anlegen der Konfigurations- und Moduletabelle
2: Anlegen von Tabellen und Konfigurationswerten, sonstige Aktionen, baut auf 1 auf
3: Löschen von veralteten oder ungültigen Daten, baut auf 2 auf
4: Abschließende Überprüfungen oder Arbeiten, baut auf 3 auf
- images/menu/16.[gif|png]
Das kleine Symbol, nur verwendet im Menü
- images/menu/32.[gif|png]
Das große Symbol, verwendet im Konfigurationsmenü im Administrationsbereich oder in der Titelzeile
- page/*.inc.php
Diese werden durch modulseite.php?modul=...&seite=... aufgerufen. Rufen Sie Modulinhalte nur über modulseite.inc.php auf, da diese die Variablen für das Modul bereitstellt.
- page/main.inc.php
Diese Seite wird aufgerufen, wenn der Menüeintrag angeklickt wird.
- page/edit.inc.php
Hat sich eingebürgert als die Seite, auf welcher ein Eintrag editiert wird.
- page/operate.inc.php
Hat sich eingebürgert als die Seite, auf welcher Konfigurationseinstellung oder Editierungen vollzogen werden. Es wird per header('Locate: ...') weitergeleitet.
- page/config.inc.php
Ist diese Seite vorhanden, ist das Modul in dem Konfigurationsmenü verfügbar. Diese Seite enthält dann die Konfigurationseinstellungen Ihres Modules.
- var.inc.php
Enthält die Grundsetzlichen Konstanten Ihres Modules. Diese Konstanten setzen unter anderem den Namen, die Lizenz und die benötigten Rechte für das Modul fest. Die Variablen werden bei modulseite.inc.php an die seite_*.inc.php und crossover/* weitergegeben. Bitte führen Sie keinen Code in diesem Modul aus!!!
- [*/]index.html
Diese Dateien sind leer und verhindern, dass der Inhalt des Verzeichnisses angezeigt werden kann.
- page/view.inc.php
Sie können diesen Namen für eine Seite verwenden, bei der ein Eintrag betrachtet, aber nicht bearbeitet wird.
- page/checkparsing.inc.php
Sie können diesen Namen für eine Seite verwenden, bei der z.B. ein Link oder eine Eingabe vor dem speichern des Eintrages überprüft wird.
- includes/menu_entry.inc.php
Diese Include wird von den gfx_zeichneitems[_filter]-Funktion innerhalb von functions.inc.php aufgerufen und zeigt einen Item-Menüeintrag an. Sie müssen die GFX-Funktionen nicht verwenden, doch sind diese bei Standard-Modulen mit der Ordnerstruktur üblich. Die var.inc.php-Informationen werden nicht übergeben.
- images/item*.gif
Diese Grafik wird z.B. in menueeintrag.inc.php aufgerufen und zeigt die Items in ggf. unterschiedlichen Farben an.
- crossover/
Dieses Verzeichnis beinhaltet querverknüpfte Funktionalitäten der Module. Eigentlich ist seite_konfig.inc.php ebenfalls eine querverknüpfte Funktionalittät, doch ist diese Funktion derzeit nur als Seite definiert. Je nach dem, mit welchem anderen Modul Ihr Modul zusammenarbeiten soll, müssen Sie anderen Code entwerfen. Der Name Ihres Modules ist hier $m2 und nicht $modul. $modul ist der Name des Modules, welches der Benutzer gerade aufgerufen hat, also mit welchem Ihr Modul zusammenarbeitet.
- crossover/common_cronjob/main.inc.php
Wenn Ihr Modul durch die minütliche Cronjob-Ausführung Aufgaben abarbeiten soll, verwenden Sie diese Querverknüpfung.
- crossover/user_overview/main.inc.php
Wenn Ihr Modul einen Eintrag, also eine Information oder eine Warnung in der Ereignisanzeige von user_uebersicht ausgeben soll, verwenden Sie diese Querverknüpfung.
- crossover/common_systemcheck/main.inc.php
Wenn Ihr Modul einen Eintrag, also eine Information oder eine Warnung in der Systemcheck-Anzeige des Administrationsbereiches bei core_systemcheck ausgeben soll, verwenden Sie diese Querverknüpfung.
- crossover/admin_database/main.inc.php
Das Modul user_phpmyadmin verwendet diese Schnittstelle für das Modul admin_datenbank, damit der Administrator die eigene Datenbank betrachten kann. Verwenden Sie diese Querverknüfung für ein Datenbankmanagment-System-Modul.
- system/
Wenn Sie ein fremdes System wie z.B. phpMyAdmin verwenden, können Sie es in diesen Ordner ablegen.
- system/_wbver.inc.php
Hier können Sie die aktuelle Version eingeben, die dann von page/main.inc.php ausgelesen werden kann.
- system/_wbchanges.txt
Tragen Sie hier ein, welche Änderungen Sie an der PHP-Software durchgeführt haben, damit das Update dieser einfacher wird.
- static/<modulname>
Zeigt an, dass <modulname> statisch auf das Modul zugreift und die Inhalte direkt aufruft. In der Regel wird der Inhalt nicht aufgerufen, wenn er nicht existiert (fileexists).
- static-core/
Ein spezieller Bestandteil des Personal WebBase Frameworks, der direkt aufgerufen wird. In der Regel wird der Inhalt nicht aufgerufen, wenn er nicht existiert (fileexists).
- ordnername.txt
Ist in einer Modul-ZIP, bei der die Daten im ZIP-Wurzelverzeichnis liegen enthalten und gibt Personal WebBase die Information für den Modulnamen. Wird bei Installation gelöscht.
Konstanten der var.inc.php
- $modulueberschrift
Der tatsächliche Name des Moduls im Menü und in der Titelzeile
- $modulpos
In welcher Gruppierung soll das Modul im linken Menü angezeigt werden?
- $modulsekpos
Welche positionierung soll das Modul innerhalb der Gruppe haben?
- $deaktiviere_zugangspruefung
Hebelt $modulrechte aus! Diese Variable auf keinen Fall auf 1 bzw. true setzen! Diese Funktion wird benötigt, damit die Auslogg-Funktion auch bei beschädigter oder abgelaufender Session funktioniert.
- $modulrechte
Modulklasse; 2=Admin, 1=Kunde, 0=Gast, -1=Hauptmenü.
Der Modulpräfix admin_, user_ oder main_ ist nur eine Bezeichnung. In der Regel muss nicht auf $ib_user_type
geprüft werden, da Personal WebBase dies automatisch erledigt. Ausnahme gilt z.B. bei Modulen, die für Nicht-Administratoren (-1, 0, 1) freigegeben sind,
jedoch auch von Administratoren benutzt werden sollen (z.B. durch page/config.inc.php). Dort muss auf $ib_user_type = 2 geprüft werden.
- $autor
Name des Autos
- $version
Versionsangabe als YYYY-MM-DD Datumsschreibweise
- $menuevisible
Im Menü sichtbar machen?
- $license
Lizenztyp (nur eine Textangabe, fälschungs-unsicher)
0 = Für jeden kostenlos, öffentlich erhältlich
1 = Kostenpflichtig, öffentlich erhältlich (mit Freischaltung) oder nach Bezahlung erhältlich mit Verbot der Weitergabe
2 = Modul für Privatanwendung, in der Regel nicht öffentlich erhältlich
3 = Personal WebBase-Kernmodul. In der Regel wichtig zur korrekten Funktionalität von Personal WebBase. Kann wichtige Wechselwirkungen mit bestehenden Modulen tätigen.
4 = Modul, das Personal WebBase beigelgt ist
Wichtige Sicherheitshinweise
- Jede PHP-Datei muss die Konstante WBLEGAL überprüfen
- Es dürfen keine PHP-Dateien des Modulverzeichnisses direkt aufgerufen werden
Besondere Datenbankfelder
- id
- user_cnid
- folder_cnid
- *_cnid
- name
Durch Personal WebBase bereitgestellte Funktionen
Weitere Hinweise
- Wenn Ihr Modul Einträge von verschiedenen Benutzern verwendet, muss das Datenbanktabellenfeld user heißen, damit Gastkonto-Leerungen durchgeführt werden können bzw. Datensätze ungültiger Benutzer gelöscht werden können
- Wenn Ihr Modul Einträge mit verschiedenen Ordnern verwendet, muss das Datenbanktabellenfeld folder heißen, damit Datensätze von gelöschten oder ungültigen Ordnern gelöscht werden können
- Verwenden Sie stets das Feld "name", damit die Datensätze Ihres Modules mit der Suchfunktion korrekt betitelt werden können!
- Setzen Sie für Ihr modul is_searchable in der Tabelle webbase_module nur, wenn folgende Bedingungen erfüllt sind:
- Es handelt sich um ein Benutzermodul ($modulrechte 1 oder 0)
- Das Feld user ist vorhanden
- Die Seite ?seite=edit&aktion=edit&id=... und/oder ?seite=view&id=... muss erreichbar sein, um den Datensatz zu editieren
Zurück zur Übersicht
|
|
|