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('openvz_vm', $this->module_name, 'process'); $app->modules->registerTableHook('openvz_ip', $this->module_name, 'process'); $app->modules->registerTableHook('openvz_ostemplate', $this->module_name, 'process'); } /* 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 'openvz_vm': if($action == 'i') $app->plugins->raiseEvent('openvz_vm_insert', $data); if($action == 'u') $app->plugins->raiseEvent('openvz_vm_update', $data); if($action == 'd') $app->plugins->raiseEvent('openvz_vm_delete', $data); break; case 'openvz_ip': if($action == 'i') $app->plugins->raiseEvent('openvz_ip_insert', $data); if($action == 'u') $app->plugins->raiseEvent('openvz_ip_update', $data); if($action == 'd') $app->plugins->raiseEvent('openvz_ip_delete', $data); break; case 'openvz_ostemplate': if($action == 'i') $app->plugins->raiseEvent('openvz_ostemplate_insert', $data); if($action == 'u') $app->plugins->raiseEvent('openvz_ostemplate_update', $data); if($action == 'd') $app->plugins->raiseEvent('openvz_ostemplate_delete', $data); break; } // end switch } // end function } // end class ?>