plugins->announceEvents($this->module_name,$this->actions_available); /* As we want to get notified of any changes on several database tables, we register for them. The following function registers the function "functionname" to be executed when a record for the table "dbtable" is processed in the sys_datalog. "classname" is the name of the class that contains the function functionname. */ $app->modules->registerTableHook('server','server_module','process'); $app->modules->registerTableHook('server_ip','server_module','process'); $app->modules->registerTableHook('firewall','server_module','process'); // Register service //$app->services->registerService('httpd','web_module','restartHttpd'); } /* This function is called when a change in one of the registered tables is detected. The function then raises the events for the plugins. */ function process($tablename,$action,$data) { global $app; switch ($tablename) { case 'server': if($action == 'i') $app->plugins->raiseEvent('server_insert',$data); if($action == 'u') $app->plugins->raiseEvent('server_update',$data); if($action == 'd') $app->plugins->raiseEvent('server_delete',$data); break; case 'server_ip': if($action == 'i') $app->plugins->raiseEvent('server_ip_insert',$data); if($action == 'u') $app->plugins->raiseEvent('server_ip_update',$data); if($action == 'd') $app->plugins->raiseEvent('server_ip_delete',$data); break; case 'firewall': if($action == 'i') $app->plugins->raiseEvent('firewall_insert',$data); if($action == 'u') $app->plugins->raiseEvent('firewall_update',$data); if($action == 'd') $app->plugins->raiseEvent('firewall_delete',$data); break; } // end switch } // end function /* // This function is used function restartHttpd($action = 'restart') { global $app; if($action == 'restart') { exec('/etc/init.d/apache2 restart'); } else { exec('/etc/init.d/apache2 reload'); } } */ } // end class ?>