Cómo crear un módulo personalizado en Dolibarr (ejemplo simple)
   05/18/2025 00:00:00     Dolibarr , Wiki Dolibarr    0 Comentarios
Cómo crear un módulo personalizado en Dolibarr (ejemplo simple)

Dolibarr ERP & CRM es una plataforma open source versátil que permite a las empresas gestionar muchos aspectos de sus operaciones. Uno de sus mayores puntos fuertes es su arquitectura modular, que permite ampliar sus funcionalidades mediante módulos personalizados. En esta guía aprenderás paso a paso cómo crear un módulo personalizado y funcional desde cero.


Comprendiendo el sistema modular de Dolibarr

Antes de comenzar, es importante entender cómo funciona el sistema de módulos de Dolibarr. Cada módulo es un paquete independiente que puede:

  • Añadir nuevos menús o páginas

  • Crear tablas en la base de datos

  • Definir lógica de negocio y permisos

  • Conectarse con otros módulos usando hooks y triggers

Un módulo personalizado te permite adaptar Dolibarr a tus necesidades específicas sin tocar el código central, lo que facilita la actualización y el mantenimiento a largo plazo.


Requisitos previos

Para desarrollar tu propio módulo, necesitarás:

  • Una instalación funcional de Dolibarr (última versión recomendada)

  • Conocimientos básicos de PHP, HTML y SQL

  • Acceso al sistema de archivos (local, FTP o SSH)

  • Un editor de código como VS Code o Sublime Text


Paso a paso para crear un módulo personalizado

1. Crear el directorio del módulo

Ve al directorio htdocs/custom/ en tu instalación de Dolibarr. Allí se alojan todos los módulos personalizados. Crea un nuevo directorio para tu módulo:

bash
mkdir htdocs/custom/mimodulo

Sustituye mimodulo por el nombre que quieras para tu módulo.


2. Crear el archivo descriptor del módulo

Este archivo define el módulo dentro del sistema. Se ubica en htdocs/custom/mimodulo/core/modules/.

bash
mkdir -p htdocs/custom/mimodulo/core/modules/ touch htdocs/custom/mimodulo/core/modules/modMiModulo.class.php

Contenido básico:

php
<?php include_once DOL_DOCUMENT_ROOT . '/core/modules/DolibarrModules.class.php'; class modMiModulo extends DolibarrModules { public function __construct($db) { global $langs, $conf; $this->db = $db; $this->numero = 104001; // ID único $this->rights_class = 'mimodulo'; $this->family = "other"; $this->name = preg_replace('/^mod/i', '', get_class($this)); $this->description = "Descripción del módulo"; $this->version = '1.0'; $this->const_name = 'MAIN_MODULE_' . strtoupper($this->name); $this->picto = 'generic'; $this->config_page_url = array("admin/mimodulo_setup.php@mimodulo"); $this->langfiles = array("mimodulo@mimodulo"); $this->dependencies = array(); $this->phpmin = array(5, 6, 0); $this->need_dolibarr_version = array(9, 0, -1); $this->menu = array(); } }

3. Estructura recomendada del módulo

pgsql
mimodulo/ ├── admin/ │ └── mimodulo_setup.php ├── class/ │ └── miclase.class.php ├── core/ │ └── modules/ │ └── modMiModulo.class.php ├── lang/ │ └── es_ES/ │ └── mimodulo.lang ├── page/ │ └── mimodulo_page.php ├── sql/ │ └── mimodulo.sql

4. Crear la página de configuración

En admin/mimodulo_setup.php:

php
<?php require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; $langs->load("admin"); $langs->load("mimodulo@mimodulo"); $title = $langs->trans("MiModuloSetup"); 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();

5. Crear archivo de idioma

En lang/es_ES/mimodulo.lang:

ini
MiModuloSetup=Configuración de mi módulo Parameter=Parámetro Value=Valor Save=Guardar

6. Crear una página pública

En page/mimodulo_page.php:

php
<?php require '../../main.inc.php'; $langs->load("mimodulo@mimodulo"); llxHeader('', $langs->trans("MiModulo")); print load_fiche_titre($langs->trans("MiModulo")); print '<p>Esta es una página pública de mi módulo personalizado.</p>'; llxFooter();

7. Definir una clase (opcional)

En class/miclase.class.php:

php
<?php class MiClase { public $db; public function __construct($db) { $this->db = $db; } public function miFuncion() { // Tu lógica personalizada aquí } }

8. Crear script SQL (opcional)

En sql/mimodulo.sql:

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

9. Activar el módulo

  1. Inicia sesión como administrador

  2. Ve a Inicio > Configuración > Módulos / Aplicaciones

  3. Busca tu módulo en la lista

  4. Haz clic en Activar


10. Probar el módulo

  • Accede a la página de configuración

  • Abre la página pública

  • Verifica que las tablas en la base de datos se hayan creado correctamente (si es aplicable)


Conclusión

Crear un módulo personalizado en Dolibarr no solo es posible, sino relativamente sencillo. Te permite adaptar el ERP/CRM a tus necesidades específicas de negocio, manteniendo la estabilidad del sistema y la facilidad de mantenimiento.

Una vez entendido este ejemplo básico, puedes añadir hooks, permisos avanzados, acciones automáticas y más para ampliar tu módulo.

Comentarios

Inicia sesión o regístrate para publicar comentarios