This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation. |
Difference between revisions of "Event handling"
From Group-Office Groupware and CRM Documentation
(→Adding event listeners in a simple way) |
|||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | Group-Office | + | Group-Office fires event on certain actions. You can attach your own functions to do specific actions on these events. To do this create a new module. |
− | + | eg. modules/myevent. | |
− | + | Inside this folder create the file MyeventModule.php: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<pre> | <pre> | ||
− | + | class GO_Myevent_MyeventModule extends GO_Base_Module{ | |
− | + | ||
+ | public static function initListeners() { | ||
+ | GO_Files_Model_File::model()->addListener('save', 'GO_Myevent_MyeventModule', 'save'); | ||
+ | GO_Files_Model_File::model()->addListener('delete', 'GO_Myevent_MyeventModule', 'delete'); | ||
+ | |||
+ | //attaching to a controller works a bit different | ||
+ | $c = new GO_Core_Controller_Maintenance(); | ||
+ | $c->addListener('someAction', 'GO_Myevent_MyeventModule', 'doSomething'); | ||
+ | } | ||
+ | |||
+ | public static function save(&$file){ | ||
+ | //do something with the file module here | ||
+ | } | ||
− | + | public static function delete(&$file){ | |
+ | //do something with the file module here | ||
+ | } | ||
− | + | public static function doSomething(){ | |
− | + | //do something with the file module here | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | + | After creating new listeners you must reload Group-Office so it will call the initListeners function. | |
− | + | ||
− | + | ||
− | = | + | =Standard events= |
+ | Every model that is derived from GO_Base_Db_ActiveRecord has a "save" and "delete" event. They listeners will be called with the model as the first argument. | ||
− | + | Every controller that is derived from GO_Base_Controller_AbstractModelController has a "submit", "load", "display" and "delete" event. They are all called with these parameters: $controller, $response,$model,$params,$modifiedAttributes | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 09:21, 26 July 2012
Group-Office fires event on certain actions. You can attach your own functions to do specific actions on these events. To do this create a new module.
eg. modules/myevent.
Inside this folder create the file MyeventModule.php:
class GO_Myevent_MyeventModule extends GO_Base_Module{ public static function initListeners() { GO_Files_Model_File::model()->addListener('save', 'GO_Myevent_MyeventModule', 'save'); GO_Files_Model_File::model()->addListener('delete', 'GO_Myevent_MyeventModule', 'delete'); //attaching to a controller works a bit different $c = new GO_Core_Controller_Maintenance(); $c->addListener('someAction', 'GO_Myevent_MyeventModule', 'doSomething'); } public static function save(&$file){ //do something with the file module here } public static function delete(&$file){ //do something with the file module here } public static function doSomething(){ //do something with the file module here } }
After creating new listeners you must reload Group-Office so it will call the initListeners function.
Standard events
Every model that is derived from GO_Base_Db_ActiveRecord has a "save" and "delete" event. They listeners will be called with the model as the first argument.
Every controller that is derived from GO_Base_Controller_AbstractModelController has a "submit", "load", "display" and "delete" event. They are all called with these parameters: $controller, $response,$model,$params,$modifiedAttributes