Communication entre les modules
Lors de l'installation d'un module, des dépendances peuvent êtres utilisées, le nom des modules dépendants doivent être ajoutés dans le fichier addonini.php avec le numéro de version minimum nécessaire dans la section "addons" :
exemple avec le module ivdashboard qui nécessite le module client :
[general] name="ivdashboard" version=6.09 description="Gestion de projets INVIVO" db_prefix="ivd_" ov_version=5.6.2 php_version=4.1.2 mysql_version=3.23 [addons] clients=2.8
Pour que les différents modules puissent partager des fonctions, les développeurs pourrons utiliser le gestionnaire d'événements
DRAFT : API d'appel de fonction direct entre les modules
Proposer une fonction
Chaque module proposant une ou plusieurs fonctions disponibles pour les autres modules devra contenir un fichier "interface.php" avec un objet contenant des méthodes statiques.
Le nom de l'objet sera crée à partir du nom du module de la manière suivante : addonname_interface
La syntaxe phpdoc devra être utilisée pour définir le numéro de version du module minimum requis.
exemple :
class forms_interface {
/**
* get form object
* @since 5.0
* @static
*/
function getForm($id_form) {
}
}
Appeler une fonction
Lors de l'appel d'un fonction d'un autre module, les droits ACL du module cible sont testés, il faut utiliser la fonction bab_callAddon() avec les paramètres suivants :
- nom de l'addon
- nom de la méthode
- ... (un ou plusieurs paramètres qui serons passés à la méthode cible)
