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
Jump to: navigation, search
(Replaced content with "TODO")
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
TODO
+
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>
 +
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>
 +
 
 +
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