Come creare un modulo personalizzato in Dolibarr (esempio semplice)
   05/18/2025 00:00:00     Dolibarr , Wiki Dolibarr    0 Commenti
Come creare un modulo personalizzato in Dolibarr (esempio semplice)

Dolibarr ERP & CRM è una piattaforma open source versatile che consente alle aziende di gestire numerosi aspetti della propria attività. Uno dei suoi punti di forza è l’architettura modulare, che permette di estenderne le funzionalità tramite moduli personalizzati. In questa guida vedremo passo dopo passo come creare un modulo semplice in Dolibarr.


Comprendere l’architettura modulare di Dolibarr

Prima di iniziare, è importante capire come funziona il sistema modulare di Dolibarr. Ogni modulo è un pacchetto indipendente che può:

  • Aggiungere nuove pagine o voci di menu

  • Creare tabelle nel database

  • Definire logiche aziendali o permessi

  • Utilizzare hook e trigger per integrarsi con il sistema

Creare un modulo ti consente di adattare Dolibarr alle esigenze della tua azienda senza modificare il codice core, facilitando aggiornamenti e manutenzione.


Prerequisiti

Per creare un modulo, ti servono:

  • Un’installazione funzionante di Dolibarr (meglio se aggiornata)

  • Conoscenze base di PHP, HTML e SQL

  • Accesso al file system (via FTP, SSH o locale)

  • Un editor di codice (ad esempio VS Code o Sublime Text)


Passaggi per creare un modulo personalizzato

1. Crea la cartella del modulo

Vai nella cartella htdocs/custom/ della tua installazione Dolibarr. Crea una nuova cartella per il modulo:

bash
mkdir htdocs/custom/mymodule

Sostituisci mymodule con il nome che vuoi dare al modulo.


2. Crea il file descrittore del modulo

Questo file definisce le proprietà del modulo. Si trova in htdocs/custom/mymodule/core/modules/:

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

Contenuto base del file:

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; $this->rights_class = 'mymodule'; $this->family = "other"; $this->name = preg_replace('/^mod/i', '', get_class($this)); $this->description = "Descrizione del mio modulo"; $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(); } }

Modifica i valori secondo le tue necessità. L’ID deve essere unico.


3. Struttura del modulo

Struttura consigliata:

pgsql
mymodule/ ├── admin/ │ └── mymodule_setup.php ├── class/ │ └── myclass.class.php ├── core/ │ └── modules/ │ └── modMyModule.class.php ├── lang/ │ └── it_IT/ │ └── mymodule.lang ├── page/ │ └── mymodule_page.php ├── sql/ │ └── mymodule.sql

4. Crea la pagina di configurazione

In 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();

5. Crea un file lingua

In lang/it_IT/mymodule.lang:

ini
MyModuleSetup=Configurazione del mio modulo Parameter=Parametro Value=Valore Save=Salva

6. Crea una pagina pubblica

In 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>Questa è una pagina del modulo personalizzato.</p>'; llxFooter();

7. Definisci una classe (opzionale)

In class/myclass.class.php:

php
<?php class MyClass { public $db; public function __construct($db) { $this->db = $db; } public function myFunction() { // Logica personalizzata } }

8. Script SQL (opzionale)

In 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;

9. Attiva il modulo

  1. Accedi a Dolibarr come amministratore

  2. Vai su Home > Configurazione > Moduli / Applicazioni

  3. Cerca il modulo

  4. Clicca su Attiva


10. Testa il modulo

  • Accedi alla pagina di configurazione

  • Verifica che la pagina pubblica venga caricata

  • Controlla che eventuali tabelle siano create correttamente


Conclusione

Creare un modulo personalizzato in Dolibarr ti permette di adattare l’ERP alle esigenze specifiche della tua attività. Con i passaggi sopra descritti, hai una base solida per sviluppare funzionalità su misura mantenendo compatibilità e stabilità nel tempo.

Con questo esempio base, puoi poi espandere il modulo aggiungendo hook, azioni, permessi o interfacce avanzate.

Commenti

Accedi o registrati per inserire commenti