dolibarr  20.0.0-beta
Public Member Functions | Public Attributes | List of all members
HookManager Class Reference

Class to manage hooks. More...

Public Member Functions

 __construct ($db)
 Constructor. More...
 
 initHooks ($arraycontext)
 Init array $this->hooks with instantiated action controllers. More...
 
 executeHooks ($method, $parameters=array(), &$object=null, &$action='')
 Execute hooks (if they were initialized) for the given method. More...
 

Public Attributes

 $hooks = array()
 array<string,array<string,null|string|CommonHookActions>> Array with instantiated classes
 

Detailed Description

Class to manage hooks.

Definition at line 31 of file hookmanager.class.php.

Constructor & Destructor Documentation

◆ __construct()

HookManager::__construct (   $db)

Constructor.

Parameters
DoliDB$dbDatabase handler
Returns
void

Definition at line 84 of file hookmanager.class.php.

Member Function Documentation

◆ executeHooks()

HookManager::executeHooks (   $method,
  $parameters = array(),
$object = null,
$action = '' 
)

Execute hooks (if they were initialized) for the given method.

Parameters
string$methodName of method hooked ('doActions', 'printSearchForm', 'showInputField', ...)
array<string,mixed>$parameters Array of parameters
object$objectObject to use hooks on
string$actionAction code on calling page ('create', 'edit', 'view', 'add', 'update', 'delete'...)
Returns
int<-1,1> For 'addreplace' hooks (doActions, formConfirm, formObjectOptions, pdf_xxx,...): Return 0 if we want to keep standard actions, >0 if we want to stop/replace standard actions, <0 if KO. Things to print are returned into ->resprints and set into ->resPrint. Things to return are returned into ->results by hook and set into ->resArray for caller. For 'output' hooks (printLeftBlock, formAddObjectLine, formBuilddocOptions, ...): Return 0 if we want to keep standard actions, >0 uf we want to stop/replace standard actions (at least one > 0 and replacement will be done), <0 if KO. Things to print are returned into ->resprints and set into ->resPrint. Things to return are returned into ->results by hook and set into ->resArray for caller. All types can also return some values into an array ->results that will be merged into this->resArray for caller. $this->error or this->errors are also defined by class called by this function if error.

Definition at line 176 of file hookmanager.class.php.

◆ initHooks()

HookManager::initHooks (   $arraycontext)

Init array $this->hooks with instantiated action controllers.

First, a hook is declared by a module by adding a constant MAIN_MODULE_MYMODULENAME_HOOKS with value 'nameofcontext1:nameofcontext2:...' into $this->const of module descriptor file. This makes $conf->hooks_modules loaded with an entry ('modulename'=>array(nameofcontext1,nameofcontext2,...)) When initHooks function is called, with initHooks(list_of_contexts), an array $this->hooks is defined with instance of controller class found into file /mymodule/class/actions_mymodule.class.php (if module has declared the context as a managed context). Then when a hook executeHooks('aMethod'...) is called, the method aMethod found into class will be executed.

Parameters
string[]$arraycontextArray list of searched hooks tab/features. For example: 'thirdpartycard' (for hook methods into page card thirdparty), 'thirdpartydao' (for hook methods into Societe), ...
Returns
int<0,1> 0 or 1

Definition at line 101 of file hookmanager.class.php.


The documentation for this class was generated from the following file: