Home / Wilkommen-en / eigene Module-en
dbXwebApp beinhaltet eine Vielzahl von Modulen. Es ist auch sehr einfach eigene Module für dbXwebApp zu entwickeln.
Alle Module werden vom Kernel aufgerufen und geben Ihren Inhalt immer als return $meine_modul_ausgabe als String an das System Zurück.
Manche Module geben auch "nichts" als Content an das System zurück und führen "nur" Berechnungen oder andere Aktionen aus.
Jedes Modul kann die Ausgabe leicht um weitere JavaScript und CSS-Dateien erweitern.
Module haben Zugriff auf alle globalen Variablen, nutzen aber ein geschütztes Array für Ihre eigenen Parameter.
Ein neues Modul kann über die Modul-Administration automatisch neu erstellt werden. Dabei werden die benötigten Ordner (Dateisystem), einige PHP Dateien und bei Bedarf auch die Datenbank-Tabellen für Modul-Templates automatisch erstellt. Es wird für das neue Modul auch eine PHP-Klasse für dieses Modul erzeugt. Die Integration des Modules in die IDE (Plugin im Editor) wird dabei auch schon vorbereitet.
PHP Source eines kleinen Modules mit dem sinnigen Namen hello_wold
hello_world.php
hello_world.class.php
dbXwebApp benötigt für die interne Verwaltung der Module noch zwei zusätzliche Funktionen, die in jedem Modul vorhanden sein müssen.
Dafür muss in der _config() Funktion der Wert $settings['ide'] = "Y:Modul im Editor (M) anzeigen "; auf 1 (true) gesetzt werden und es muss eine _ide() Funktion im Modul vorhanden sein.
Komplettes Modul hello_world mit zwei unterschiedlichen Ausgaben (mit und ohne Bild) inclusiv der Integration in der IDE.
hello_world.php
hello_world.class.php
Dieses Modul gibt (wie sicherlich schon vermutet) den Text "Hallo World" aus.
Wenn jetzt innerhalb des Inhaltes (meist innerhalb eines Templates) [modul=hello_world]op=show[/modul] steht, wird das Modul hello_world vom Kernel automatisch includiert und die Function hello_world() aufgerufen * . Dieser Aufruf wird dann (im Template) mit dem Rückgabewert vom Modul ersetzt. Natürlich können Module, je nach übergebenen Parametern, ganz unterschiedliche Werte zurückgeben.
Es ist auch möglich, dass innerhalb des Rückgabewertes wieder Modulaufrufe ([modl=modul_name]parmeter1=wert1 ..[/modul] ) stehen.
Jedes Modul kann sehr einfach in die IDE (ein Plugin vom tinymce) intrigiert werden.
Wenn das Modul als Bild (Plugin dbxmodul) in einen Content oder Template eingefügt wird kann die Modulausgabe auch als DHTML erfolgen.
DHTML-Ausgaben lassen sich von berechtigten Benutzern beliebig verschieben/positionieren und in Größe und Farben individuell gestalten.
[modul=hello_world]op=show_with_img[/modul]
erzeugt ->

Hello World
erzeugt ->

Hello World
eigene Module-en
dbXwebApp eigene Module
dbXwebApp beinhaltet eine Vielzahl von Modulen. Es ist auch sehr einfach eigene Module für dbXwebApp zu entwickeln.
Alle Module werden vom Kernel aufgerufen und geben Ihren Inhalt immer als return $meine_modul_ausgabe als String an das System Zurück.
Manche Module geben auch "nichts" als Content an das System zurück und führen "nur" Berechnungen oder andere Aktionen aus.
Jedes Modul kann die Ausgabe leicht um weitere JavaScript und CSS-Dateien erweitern.
Module haben Zugriff auf alle globalen Variablen, nutzen aber ein geschütztes Array für Ihre eigenen Parameter.
Ein neues Modul kann über die Modul-Administration automatisch neu erstellt werden. Dabei werden die benötigten Ordner (Dateisystem), einige PHP Dateien und bei Bedarf auch die Datenbank-Tabellen für Modul-Templates automatisch erstellt. Es wird für das neue Modul auch eine PHP-Klasse für dieses Modul erzeugt. Die Integration des Modules in die IDE (Plugin im Editor) wird dabei auch schon vorbereitet.
Ein weltberühmtes Standard Beispiel:
PHP Source eines kleinen Modules mit dem sinnigen Namen hello_wold
Ansicht vom automatisch generierten PHP-Code
hello_world.php
001 function hello_world_config() { 002 global $modul_config; 003 $settings['s_title'] = "hello_world"; 004 $settings['s_img'] = "hello_world.jpg"; 005 $modul_config['hello_world'] = $settings; 006 } 007 function hello_world_ide() { 008 $ide['parameter'] = "op=info"; 009 $ide['infotxt'] = "Modul hello_world Info"; 010 return $ide; 011 } 012 function hello_world_init() { 013 return 1; 014 } 015 function hello_world() { 016 $op =dbx_get_GlobalVar("op","info"); 017 $content=dbx_modul_object("hello_world",$op); 018 return $content; 019 }
hello_world.class.php
001 class hello_world { 002 public function info() { // Sampel Function 003 return "NEW MODUL hello_world"; 004 } 005 } // Class
dbXwebApp benötigt für die interne Verwaltung der Module noch zwei zusätzliche Funktionen, die in jedem Modul vorhanden sein müssen.
- Eine Funktion für die Konfiguration vom Modul _config().
Hier werden grundsätzlichen Eigenschaften vom Modul festgelegt. z.B ob das Modul cachebar ist.
Das System legt automatisch für jedes Modul einige Parameter an, die in der _config() Funktion nicht anggeben werden müssen.
- version // Das System ist UpDate-fähig und jedes Modul hat seine eigne Version
- title // Wird in der Administratin angezeigt
- img // Bild, wird in der Administration angezeigt
- system // sys=System Modul dbx=Standart Modul cus=Custom Modul
- caching // 0/1 Modul Caching
- div // 0/1 Modul DIV Container
- no_activ_mod // 0/1 Aktives Modul nicht wechseln
- ide // 0/1 Modul in der IDE anzeigen
- ide_seth // IDE-Wert
- ide_setw // IDE-Wert
- ide_writeh // IDE-Wert
- ide_writew// IDE-Wert
- de_geth // IDE-Wert
- ide_getw // IDE-Wert
- dhtml // Interpreter-Wert
- dhtml_inline // Interpreter-Wert
- db_tables // Verwendete db-Tabellen
- access_adm // Gruppen Admin Zugriff
- access_usr // Gruppen Benutzer Zugriff
Diese Werte können alle über die Modul-Administration angezeigt/gesetzt werden.
Es können bei Bedarf beliebig viele weitere Config-Werte für ein Modul in der Function _config() angelegt werden.
Innerhalb von Modulen wird mit dbx_get_mcv("modul_name","var_name) ein Modul-Config-Wert gelesen.
Mit dbx_set_mcv("modul_name","var_name,"value") wird ein Modul-Config-Wert gesetzt. - Eine Funktion für die Initialization vom Modul _init().
Muss true (1) zurück geben, oder das Modul wird nicht includiert / ausgeführt.
Dafür muss in der _config() Funktion der Wert $settings['ide'] = "Y:Modul im Editor (M) anzeigen "; auf 1 (true) gesetzt werden und es muss eine _ide() Funktion im Modul vorhanden sein.
Komplettes Modul hello_world mit zwei unterschiedlichen Ausgaben (mit und ohne Bild) inclusiv der Integration in der IDE.
Ansicht PHP-Code vom hello_world
hello_world.php
001 function hello_world_config() { 002 global $modul_config; 003 $settings['s_title'] = "hello_world"; 004 $settings['s_img'] = "world.png"; 005 $modul_config['hello_world'] = $settings; 006 } 007 function hello_world_ide() { 008 $ide['parameter'] = "op=show||op=show_with_img"; 009 $ide['infotxt'] = "Modul hello_world||show==nur Text||show_with_img==Text und Bild"; 010 return $ide; 011 } 012 function hello_world_init() { 013 return 1; 014 } 015 function hello_world() { 016 global $_av; 017 $op =dbx_get_GlobalVar("op","show"); 018 $content=dbx_modul_object("hello_world",$op); 019 return $content; 020 }
hello_world.class.php
001 class hello_world { 002 public function show() { 003 return "Hello World"; 004 } 005 public function show_with_img() { 006 $path="modules/hello_world/images/"; 007 $img=$path.dbx_get_mcv("hello_world","img"); // holt den modul config wert. (hello_world.png) 008 $img="<img src="$img" alt="hello world" />"; // xHTML um ein Bild anzuzeigen 009 $modul_content="$img Hello World"; 010 return $modul_content; 011 } 012 } // Class
Dieses Modul gibt (wie sicherlich schon vermutet) den Text "Hallo World" aus.
Wenn jetzt innerhalb des Inhaltes (meist innerhalb eines Templates) [modul=hello_world]op=show[/modul] steht, wird das Modul hello_world vom Kernel automatisch includiert und die Function hello_world() aufgerufen * . Dieser Aufruf wird dann (im Template) mit dem Rückgabewert vom Modul ersetzt. Natürlich können Module, je nach übergebenen Parametern, ganz unterschiedliche Werte zurückgeben.
Es ist auch möglich, dass innerhalb des Rückgabewertes wieder Modulaufrufe ([modl=modul_name]parmeter1=wert1 ..[/modul] ) stehen.
Jedes Modul kann sehr einfach in die IDE (ein Plugin vom tinymce) intrigiert werden.
Wenn das Modul als Bild (Plugin dbxmodul) in einen Content oder Template eingefügt wird kann die Modulausgabe auch als DHTML erfolgen.
DHTML-Ausgaben lassen sich von berechtigten Benutzern beliebig verschieben/positionieren und in Größe und Farben individuell gestalten.
[modul=hello_world]op=show_with_img[/modul]
erzeugt ->

Hello World
| 001 <img src="modules/hello_world/images/hello_world.gif" |
| 002 alt="op=show_with_img" |
| 003 title="Als DHTML" class="-dbxModul" |
| 004 border="3" height="170" width="160" |
| 005 /> |
erzeugt ->

Hello World
UID: 1 Language: en Design: default Vers: 401 (c) 2011 - dbXwebApp.org - Speed: 0.34031 Sec Querys: 24 Cache: 21 )
