You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
<?php
|
|
/**
|
|
* Events class:
|
|
* - manages events in the FusionPBX
|
|
* use:
|
|
* $e = new Events;
|
|
* $e->add_event_function('myfunction') it could be a static method as well
|
|
* $e->execute_event(ADD, $params) event type, params is an associative array
|
|
*/
|
|
include "root.php";
|
|
|
|
define ("MODULE_LOAD", 1); // when loading a FS module with FS
|
|
define ("MODULE_UNLOAD", 2);
|
|
define ("RELOADXML", 3); // when reloading xml
|
|
define ("ADD", 4); // when adding something
|
|
define ("EDIT", 5); // when editing something
|
|
define ("DEL", 6); // when deleting something
|
|
define ("LOGIN", 7); // when login
|
|
define ("LOGOUT", 8); // when logout
|
|
|
|
if (!class_exists('database')) {
|
|
class Events{
|
|
private $handler = array();
|
|
private $event = array();
|
|
|
|
public function __construct(){
|
|
}
|
|
// declare log file and file pointer as private properties
|
|
|
|
public function add_event_function($event_type, $event_function){
|
|
$event[$event_type][] = $event_function;
|
|
}
|
|
|
|
public function execute_event($event_type, $params=null){
|
|
foreach ($this->event[$event_type] as $event_function){
|
|
try{
|
|
call_user_func($event_function, $params);
|
|
}
|
|
catch (Exception $e) {
|
|
echo 'Exception: ', $e->getMessage(), "\n";
|
|
}
|
|
// Lets log
|
|
foreach ($this->handler as $handler){
|
|
$handler->log_event($event_type, $params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|