Seiten Netzwerk: ChaoS Networks | eWeBuKi | eWeBuKi Demo | port23.de |

Erweitertes "Custom Module"

Anleitung zur Inbetriebnahme eines eigenen erweiterten Moduls innerhalb von eWeBuKi.

Einfaches Custom Modul - Nach Oben - Entwicklung

Dateien vorbereiten

Als erstes erstellt man unterhalb von "modules" ein neues Verzeichnis "custom". Der Sinn der "custom" Bereiche ist es, seine eigene Arbeit vor den SVN Updates in Sicherheit zu bringen oder auch für komplexe Funktionen getrennte SVN Repository zu erlauben. (z.B. Symbolische Links)

ewebuki@ewebuki:~/ewebuki/modules$ mkdir custom
ewebuki@ewebuki:~/ewebuki/modules$ cd custom/
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer.cfg.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-ctrl.inc.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-functions.inc.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-list.inc.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-details.inc.php . ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-add.inc.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-edit.inc.php .
ewebuki@ewebuki:~/ewebuki/modules/custom$ cp -a ../leer-delete.inc.php .

Modul aktivieren

Da im Menü der Basis Konfiguration von eWeBuKi Unterpunkte deaktiviert sind, muss man diese erst ermöglichen. Dazu wird anstatt "menu" das Script "menu2" eingebunden.
Außerdem entfernen wir ebenfalls die Kommentarzeichen vor dem Beispiel "my" erweitert.

ewebuki@ewebuki:~/ewebuki$ vi conf/modules.cfg.php

aus

// basic: menu
include $pathvars["moduleroot"]."basic/menu.cfg.php";
include $pathvars["moduleroot"]."basic/menu.inc.php";

...

# // custom: modul beispiel "my" eweitert
# if ( ( $environment["ebene"] == "/dir" && $environment["kategorie"] == "my
# || ( $environment["ebene"] == "/dir/my" ))
# {
# include $pathvars["moduleroot"]."custom/leer.cfg.php";
# include $pathvars["moduleroot"]."custom/leer-ctrl.inc.php"; # erweitert
# }

wird

// basic: menu
include $pathvars["moduleroot"]."basic/menu2.cfg.php";
include $pathvars["moduleroot"]."basic/menu2.inc.php";

...

// custom: modul beispiel "my" eweitert
if ( ( $environment["ebene"] == "/dir" && $environment["kategorie"] == "my"
|| ( $environment["ebene"] == "/dir/my" ))
{
include $pathvars["moduleroot"]."custom/leer.cfg.php";
include $pathvars["moduleroot"]."custom/leer-ctrl.inc.php"; # erweiterte
}

Templates vorbereiten

eWeBuKi findet seine Vorlagen über die crc32 des aufgerufenen Pfades. In unserem Fall ist das "/dir/my" und das ergibt als crc32 "-1468826685".

Auch hier schiebt man am besten die betroffenen Vorlagen in das "custom" Verzeichnis, vor man selbige bearbeitet.

ewebuki@ewebuki:~/ewebuki/templates$ mkdir custom
ewebuki@ewebuki:~/ewebuki/templates$ cp -a -- default/-1468826685.* custom/

Menü Eintrag erstellen

Damit das erweiterte Modul über Menü erreichbar ist, legen wir nun im "Menü-Editor" mit "Neuer Eintrag" einen Eintrag "dir" mit der Bezeichnung "Dir" an.

Danach über "Unterpunkt hinzufügen" rechts vom "Dir" Eintrag einen weiteren Eintrag "my" mit der Bezeichnung "My".

Damit die Funktionen: "list", "add", "edit", "delete", details" keine 404 Meldungen erzeugen, könnte man diese ebenfalls als Unterpunkte anlegen, doch dafür gibt es auch andere Tricks:

Entweder erweitert man das $specialvars["404"]["nochk"]["ebene"] Array in der "site.cfg.php" um das "/dir" Verzeichnis.

$specialvars["404"]["nochk"]["ebene"][] = "/dir"

Oder man gibt in der "site.cfg.php" einfach sämtliche Unterfunktionen frei.

$specialvars["404"]["nochk"]["kategorie"][] = "list";
$specialvars["404"]["nochk"]["kategorie"][] = "add";
$specialvars["404"]["nochk"]["kategorie"][] = "edit";
$specialvars["404"]["nochk"]["kategorie"][] = "delete";
$specialvars["404"]["nochk"]["kategorie"][] = "details";

Natürlich kann man auch in der site.cfg.php die 404 Fehlermeldungen "$specialvars["404"]["enable"] = 0;" komplett abstellen.

Dir/My Bereich testen

Wenn alle obigen Punkte erledigt sind, sieht man nach einem klick auf den neuen Eintrag "Dir" auf der rechten Seite den Unterpunkt "My".

Nach einem klick auf "My", zeigt eWeBuki die HTML Ausgabe der "db_leer" Tabelle aus der eWeBuKi Datenbank mit dem erweiterten Custom Modul und allen möglichen Funktionen.

Neues Modul mit eigenem Namen in eigenem Bereich

Hat man obiges "My" Beispiel zum laufen gebracht, erstellt man mit dem Gerüst eine eigene Kopie des Moduls und versucht diese zum laufen zu bringen.

Wir nennen das der Einfachheit mal Data und legen es einfach mal ins Hauptverzeichnis der Website. Darauf kopieren wir unser Gerüst mit einem neuen Namen in den "custom" Bereich.

cd modules/
cp -a leer.cfg.php custom/data.cfg.php
cp -a leer-ctrl.inc.php custom/data-ctrl.inc.php
cp -a leer-functions.inc.php custom/data-functions.inc.php
cp -a leer-list.inc.php custom/data-list.inc.php
cp -a leer-add.inc.php custom/data-add.inc.php
cp -a leer-edit.inc.php custom/data-edit.inc.php
cp -a leer-delete.inc.php custom/data-delete.inc.php
cp -a leer-details.inc.php custom/data-details.inc.php

Nun passen wir in der data.cfg php die Werte "name" => "data",
und "basis" => $pathvars["virtual"]."/data" an. Als Datenbank benutzen wir erst einmal die vom Beispiel.

Damit eWeBuKi von unserem neuen Modul weiß, muss auch dafür ein "include" in die "modules.cfg.php"

// custom: data
if ( ( $environment["ebene"] == "" && $environment["kategorie"] == "data" )
|| ( $environment["ebene"] == "/data" ))
{
include $pathvars["moduleroot"]."custom/data.cfg.php";
include $pathvars["moduleroot"]."custom/data-ctrl.inc.php";
}

Als nächtes legt man nun wie oben beschrieben den gewünschten Bereich im Menü-Editor an und wechselt in selbigen. Wenn alles geklappt hat verrät uns ein Blick in den Quelltext jetzt das die crc32 des neuen Bereich "151282615" lautet.

Also kopieren wir nun auch noch die nötigen Vorlagen.

cd templates/
cp -a -- default/-1468826685.list.tem.html custom/151282615.list.tem.html
cp -a -- default/-1468826685.modify.tem.html custom/151282615.modify.tem.html
cp -a -- default/-1468826685.delete.tem.html custom/151282615.delete.tem.html
cp -a -- default/-1468826685.details.tem.html custom/151282615.details.tem.html

Wird die Seite jetzt neu geladen, sollte die Ausgabe der neuen Scripte zu sehen sein.

Tipp: Alle Textmarken sind natürlich jetzt leer. Um diese zu bearbeiten hängt man am besten ein ?edit=1 an die URL jeweilige Seite.

Jetzt sollte man sich mit den Skripten vertraut machen und die Vorlagen nach eigenen Bedürfnissen anpassen, besonders das "leer" in Konfiguration, Scripten und den Templates ersetzen, um nicht komplett den Überblick zu verlieren.

Sehr einfach geht das mit Notepad++, mit dem kann man alle Dateien öffnen und mit einem klick "leer" durch "data" in den geöffneten Dateien ersetzen.