Comment créer un module personnalisé dans Dolibarr (exemple simple)
   05/18/2025 00:00:00     Dolibarr , Wiki Dolibarr    0 Commentaires
Comment créer un module personnalisé dans Dolibarr (exemple simple)

Dolibarr ERP & CRM est une plateforme open source polyvalente qui permet aux entreprises de gérer de nombreux aspects de leurs opérations. L’un de ses plus grands atouts réside dans son architecture modulaire, qui permet d’enrichir ses fonctionnalités grâce à la création de modules personnalisés. Ce guide vous accompagne pas à pas dans la création d’un module simple dans Dolibarr.


Comprendre l’architecture modulaire de Dolibarr

Avant de vous lancer dans la création de modules, il est essentiel de comprendre le fonctionnement du système de modules de Dolibarr. Chaque module est un ensemble autonome qui peut :

  • Ajouter de nouvelles pages ou menus

  • Créer de nouvelles tables dans la base de données

  • Définir des règles de gestion ou des permissions

  • Utiliser des hooks et des triggers pour s’intégrer dans le système existant

Créer un module vous permet d’étendre les fonctionnalités de Dolibarr sans modifier son code source, ce qui facilite la maintenance et les mises à jour futures.


Prérequis

Pour créer un module dans Dolibarr, vous aurez besoin de :

  • Une installation fonctionnelle de Dolibarr (dernière version recommandée)

  • Des bases en PHP, HTML et SQL

  • Un accès au système de fichiers de Dolibarr (FTP, SSH ou accès local)

  • Un éditeur de code (comme VS Code, Sublime Text, etc.)


Étapes pour créer un module personnalisé

Étape 1 : Créer le répertoire du module

Allez dans le répertoire htdocs/custom/ de votre installation Dolibarr. C’est ici que les modules personnalisés doivent être placés. Créez un nouveau dossier :

bash
mkdir htdocs/custom/mymodule

Remplacez mymodule par le nom de votre module.


Étape 2 : Créer le fichier descripteur du module

Ce fichier décrit le module à Dolibarr. Il se trouve dans htdocs/custom/mymodule/core/modules/ :

bash
mkdir -p htdocs/custom/mymodule/core/modules/ touch htdocs/custom/mymodule/core/modules/modMyModule.class.php

Contenu de base du fichier modMyModule.class.php :

php
<?php include_once DOL_DOCUMENT_ROOT . '/core/modules/DolibarrModules.class.php'; class modMyModule extends DolibarrModules { public function __construct($db) { global $langs, $conf; $this->db = $db; $this->numero = 104001; // ID unique $this->rights_class = 'mymodule'; $this->family = "other"; $this->name = preg_replace('/^mod/i', '', get_class($this)); $this->description = "Mon module personnalisé"; $this->version = '1.0'; $this->const_name = 'MAIN_MODULE_' . strtoupper($this->name); $this->picto = 'generic'; $this->config_page_url = array("admin/mymodule_setup.php@mymodule"); $this->langfiles = array("mymodule@mymodule"); $this->dependencies = array(); $this->phpmin = array(5, 6, 0); $this->need_dolibarr_version = array(9, 0, -1); $this->menu = array(); } }

Adaptez les propriétés selon votre projet. Assurez-vous que le numéro du module soit unique.


Étape 3 : Organiser la structure du module

Structure recommandée :

pgsql
mymodule/ ├── admin/ │ └── mymodule_setup.php ├── class/ │ └── myclass.class.php ├── core/ │ └── modules/ │ └── modMyModule.class.php ├── lang/ │ └── fr_FR/ │ └── mymodule.lang ├── page/ │ └── mymodule_page.php ├── sql/ │ └── mymodule.sql
  • admin/ : pages de configuration

  • class/ : logique métier

  • core/modules/ : fichier descripteur

  • lang/ : traductions

  • page/ : pages visibles par l’utilisateur

  • sql/ : scripts de création de base de données


Étape 4 : Créer la page de configuration

Dans admin/mymodule_setup.php :

php
<?php require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; $langs->load("admin"); $langs->load("mymodule@mymodule"); $title = $langs->trans("MyModuleSetup"); llxHeader('', $title); print load_fiche_titre($title); print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'; print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; print '<td>'.$langs->trans("Parameter").'</td>'; print '<td>'.$langs->trans("Value").'</td>'; print '</tr>'; print '</table>'; print '<br><div class="center">'; print '<input type="submit" class="button" value="'.$langs->trans("Save").'">'; print '</div>'; print '</form>'; llxFooter();

Étape 5 : Ajouter un fichier de langue

Dans lang/fr_FR/mymodule.lang :

ini
MyModuleSetup=Configuration de Mon Module Parameter=Paramètre Value=Valeur Save=Enregistrer

Étape 6 : Créer une page publique

Dans page/mymodule_page.php :

php
<?php require '../../main.inc.php'; $langs->load("mymodule@mymodule"); llxHeader('', $langs->trans("MyModule")); print load_fiche_titre($langs->trans("MyModule")); print '<p>Ceci est une page de module personnalisé.</p>'; llxFooter();

Étape 7 : Définir une classe métier (optionnel)

Dans class/myclass.class.php :

php
<?php class MyClass { public $db; public function __construct($db) { $this->db = $db; } public function myFunction() { // Votre logique métier } }

Étape 8 : Ajouter un script SQL (optionnel)

Dans sql/mymodule.sql :

sql
CREATE TABLE IF NOT EXISTS llx_mymodule ( rowid INTEGER AUTO_INCREMENT PRIMARY KEY, entity INTEGER NOT NULL DEFAULT 1, tms TIMESTAMP, import_key VARCHAR(14) ) ENGINE=innodb;

Étape 9 : Activer le module

  1. Connectez-vous à Dolibarr en tant qu’administrateur

  2. Allez dans Accueil > Configuration > Modules / Applications

  3. Recherchez votre module

  4. Cliquez sur Activer


Étape 10 : Tester votre module

  • Accédez à la page de configuration

  • Testez l’affichage de la page publique

  • Vérifiez la création des tables en base de données


Conclusion

Créer un module personnalisé dans Dolibarr permet d’ajuster la plateforme à vos besoins spécifiques sans modifier le cœur du système. C’est un excellent moyen de développer des fonctionnalités sur mesure tout en maintenant la compatibilité avec les futures mises à jour.

Avec ce guide, vous disposez des bases solides pour créer votre premier module. Ensuite, libre à vous d’ajouter des hooks, des permissions, des actions automatiques et bien plus encore.

Commentaires

Connectez-vous ou inscrivez-vous pour poster des commentaires