El sistema Hooks: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 13: Line 13:
1- Añadir su módulo a los hooks del contexto que desee.
1- Añadir su módulo a los hooks del contexto que desee.
Esto significa que cuando este contexto (módulo) va a suceder, el módulo será llamado.
Esto significa que cuando este contexto (módulo) va a suceder, el módulo será llamado.
Para ello edite su /htdocs/includes/modSuModulo.class.php y edite la variable $this->const con algo como esto:
Para ello edite su '''/htdocs/''sumodulo''/includes/mod''SuModulo''.class.php''' y edite la variable '''$this->module_parts''' con algo como esto:


<source lang="php">
...
$this->const = array( 0=>array('MAIN_MODULE_SUMODULO_HOOKS', 'chaine', 'productcard:invoicecard:propalcard', 'Hooks list for managing printing functions of the CustomFields module', 0);
</source>


Por supuesto, cambie SuModulo por el nombre de su módulo.
Por supuesto, cambie SuModulo por el nombre de su módulo.
No toque 'chaine': define el tipo de la constante.
Entonces obtendrá un valor en el tercer índice, una cadena con los contextos separados por una coma.


'''IMPORTANTE''': Tenga cuidado: No olvide DESACTIVAR y luego ACTIVAR el módulo en el panel de administración para aceptar los nuevos valores de las constantes, ya que estas constantes solo se añaden a la base de datos cuando se activa el módulo.
'''IMPORTANTE''': Tenga cuidado: No olvide DESACTIVAR y luego ACTIVAR el módulo en el panel de administración para aceptar los nuevos valores de las constantes, ya que estas constantes solo se añaden a la base de datos cuando se activa el módulo.


Y tenga en cuenta que la constante se actualiza porque se encuentra en la función remove() del mismo archivo, que le dice a Dolibarr que elimine las constantes en la desactivación del módulo, de lo contrario Dolibarr no actualiza las constantes si no se elimina primero (incluso si los valores han cambiado). Su función remove() debería ser algo similar a esto:
<source lang="php">
/**
* Function called when module is disabled.
* Remove from database constants, boxes and permissions from Dolibarr database.
* Data directories are not deleted.
* @return    int            1 if OK, 0 if KO
*/
function remove()
{
$sql = array("DELETE FROM ".MAIN_DB_PREFIX."const WHERE name like '%_mymodulename' OR name like '%_mymodulename_%';");
return $this->_remove($sql);
}
</source>


2- Sobrecargar un hook (una función) con la suya propia.
2- Sobrecargar un hook (una función) con la suya propia.
Line 46: Line 27:


<source lang="php">
<source lang="php">
class ActionsYourModuleName // extends CommonObject
class ActionsYourModuleName  
{  
{  
   
   

Navigation menu