Eventlistener (Abfangen von Systemevents)

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!!!