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
(2 intermediate revisions by one other user not shown) | |||
Line 6: | Line 6: | ||
<pre> | <pre> | ||
− | class | + | class GO_Myevent_MyeventModule extends GO_Base_Module{ |
public static function initListeners() { | public static function initListeners() { | ||
Line 30: | Line 30: | ||
} | } | ||
</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