Mittels Eventlistener können Portalevents abgefangen und behandelt werden.
Es gibt 2 Arten von Listenern - BEFORE und AFTER.
<?php
/* Before Listener */
class theb_help_set_allowed_before {
public function run($eventPublisher, $eventName,$eventType, &$params, &$cancel) {
//includeHelpPage
$params['allowfiletype'] = false;
return;
}
}
?>
<?php
/* After Listener */
class theb_demoevent_after {
public function run($eventPublisher, $eventName,$eventType, &$params) {
}
}
?>
Bei einem Before Listener kann mit $cancel=true; die jeweilige Aktion
abgebrochen werden.
Über $params (array) werden je Event Daten kontextbezogen übergeben.
Die Argumete $cancel und $param werden ByRef übergeben.
Folgende Events werden vom Portal abgefeuert:
| Publisher | Name | Type | Bemerkung | Übergabewerte($params) |
| page | includeLayout | BEFORE | Vor dem Include | $params['pageid'] |
| page | includeLayout | AFTER | Nach dem Include | $params['pageid'] |
| bportral | login | BEFORE | Vor dem Login |
$params['userid'] $params['password'] $params['loginstatus'] Bei $cancel=true; kann mittels $params['loginstatus'] der Loginstatus gesetzt werden, um somit die Anmeldeprozedur umgangen werden. $params['loginstatus']=0 : nicht angemeldet $params['loginstatus']=1: angemledet |
| bportral | login | AFTER | nach dem Login |
$params['userid'] $params['password'] $params['loginstatus'] |
| bportral |
logout |
BBEFORE | Vor dem Login | $params['returnvalue'] |
| bportral | logout | AFTER | Nach dem Logout | |
| help | includeHelpPage | BEFORE |
Vor dem Include einer
Hilfeseite |
$params['helpfilename']
$params['filetype'] $params['allowfiletype'] Bei $cancel=true; kann mit $params['msg'] ein Fehlertext zurückgegeben werden |
| help | includeHelpPage | AFTER |
Nach dem Include einer HHilfeseite |
$params['helpfilename']
$params['filetype'] $params['allowfiletype'] |
| bsession | initSession | BEFORE |
Vor dem Init einer neuen Session (wird je Session einmalig aufgerufen) |
|
| bsession | initSession | AFTER |
Nach dem Init einer neuen Session (wird je Session einmalig aufgerufen) |
|
| bsession | killSession | |||
| bsession | killSession | |||
| datagrid |
Pfad zur Gridpage z.B. /modules/theb_demo/demodatagrid.php immer beginnend mit einem / !!! |
BEFORE | Vor dem Aufbau |
htmlcode:Wird bei bcancel ausgegeben grid:Gridobjekt |
| datagrid |
Pfad zur Gridpage z.B. /modules/theb_demo/demodatagrid.php immer beginnend mit einem / !!! |
AFTER | Nach dem Aufbau |
htmlcode:Wird bei bcancel ausgegeben grid:Gridobjekt |
| placeholder | parse | BEFORE | Vor dem Ersetzen |
replacetext:Wird bei bcancel ausgegeben commndline:Die Commandline ohne Anfangs und Endekennung delimiter: Trennzeichen Commandline regexfound: Array mit RegEx Informationen |
| placeholder | parse | AFTER | Nach dem Ersetzen |
replacetext: commndline:Die Commandline ohne Anfangs und Endekennung delimiter: Trennzeichen Commandline regexfound: Array mit RegEx Informationen |
| code_placeholder | parse | BEFORE | Vor dem Ersetzen |
replacetext:Wird bei bcancel ausgegeben commndline:Die Commandline ohne Anfangs und Endekennung regexfound: Array mit RegEx Informationen |
| code_placeholder | parse | AFTER | Nach dem Ersetzen |
replacetext: commndline:Die Commandline ohne Anfangs und Endekennung regexfound: Array mit RegEx Informationen |
| page | includeCSSLayout | AFTER | Nach dem Ermitteln der css Datei |
replacetext: pageid:pageid Das ermittelte Layout steht in der Session zur Verfügung (__theB_Layout_CSSFileName) |
| cron | Name des Cronjobs aus der Tabelle theb_cronjobs (Feld job_name) | AFTER |
job_id: |
|
| bportal | getsystemimage | BEFORE |
imgAlias: html: pageid: |
|
| bportal | getsystemimage | AFTER |
imgAlias: html: pageid: |
|
| SOAPServer.callCustomerMethod | Name der Methode | AFTER | Ausführung |
params userData params2 userData2 params3 userData3 return Rückgabewert XMLRootNode Rootnode der XMLantwortnachrict (BPortal) ResultFormat Ausgabeformat (XML) |
| ServerMethod.callServerMethod | Name der Methode | AFTER | Ausführung der Servermethod | Bedutzerdefinierte Daten |
Die Eventlistener müssen in der Datenbank (Tablle theb_eventlistener) per install.sql Script mittels Zusatzmodul
Installiert, und deinstalliert werden.
!!!Es werden nur Listener von aktivierten Modulen ausgerufen!!!