Wie man ein benutzerdefiniertes Modul in Dolibarr erstellt (ein einfaches Beispiel)
   05/18/2025 00:00:00     Dolibarr , Wiki Dolibarr    0 Bemerkungen
Wie man ein benutzerdefiniertes Modul in Dolibarr erstellt (ein einfaches Beispiel)

Dolibarr ERP & CRM ist eine vielseitige Open-Source-Plattform, mit der Unternehmen viele Aspekte ihres Geschäfts verwalten können. Einer der größten Vorteile von Dolibarr ist seine modulare Architektur – sie ermöglicht es Entwicklern, die Funktionen des Systems durch eigene Module zu erweitern. In dieser Anleitung zeigen wir dir Schritt für Schritt, wie du ein einfaches, benutzerdefiniertes Modul in Dolibarr erstellst.


Das modulare System von Dolibarr verstehen

Bevor du ein Modul erstellst, solltest du verstehen, wie Dolibarrs Modulsystem funktioniert. Jedes Modul ist ein in sich geschlossenes Paket, das Folgendes leisten kann:

  • Neue Menüs oder Seiten hinzufügen

  • Datenbanktabellen erstellen

  • Geschäftslogik und Berechtigungen definieren

  • Mit Hooks und Triggern in bestehende Abläufe eingreifen

Ein eigenes Modul ermöglicht dir, Dolibarr an deine Bedürfnisse anzupassen, ohne den Core-Code zu verändern – das vereinfacht Wartung und Updates erheblich.


Voraussetzungen

Du brauchst:

  • Eine funktionierende Dolibarr-Installation (idealerweise aktuell)

  • Grundkenntnisse in PHP, HTML und SQL

  • Zugriff auf das Dateisystem (lokal oder per FTP/SSH)

  • Einen Code-Editor (z. B. VS Code oder Sublime Text)


Schritt-für-Schritt: Dein erstes Modul

1. Modulverzeichnis erstellen

Wechsle in das Verzeichnis htdocs/custom/ deiner Dolibarr-Installation. Erstelle einen neuen Ordner für dein Modul:

bash
mkdir htdocs/custom/mymodule

Ersetze mymodule durch den gewünschten Modulnamen.


2. Modul-Deskriptor anlegen

Der Deskriptor definiert dein Modul für Dolibarr. Erstelle in htdocs/custom/mymodule/core/modules/ die Datei modMyModule.class.php:

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

Beispielinhalt:

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 = "Beschreibung meines benutzerdefinierten Moduls"; $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(); } }

Passe die Werte nach deinen Bedürfnissen an. Die numero muss eindeutig sein.


3. Modulstruktur aufbauen

Empfohlene Struktur:

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

4. Konfigurationsseite erstellen

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. Sprachdatei anlegen

In lang/de_DE/mymodule.lang:

ini
MyModuleSetup=Modulkonfiguration Parameter=Parameter Value=Wert Save=Speichern

6. Öffentliche Seite erstellen

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>Dies ist eine benutzerdefinierte Modul-Seite.</p>'; llxFooter();

7. Eigene Klasse definieren (optional)

In class/myclass.class.php:

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

8. SQL-Skript erstellen (optional)

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. Modul aktivieren

  1. Melde dich als Administrator an

  2. Gehe zu Startseite > Setup > Module/Anwendungen

  3. Suche dein Modul

  4. Klicke auf Aktivieren


10. Modul testen

  • Öffne die Konfigurationsseite

  • Rufe die öffentliche Seite auf

  • Überprüfe, ob Tabellen erstellt wurden (falls nötig)


Fazit

Ein benutzerdefiniertes Modul in Dolibarr zu erstellen ist nicht nur möglich, sondern auch relativ unkompliziert. Es bietet dir volle Kontrolle und Flexibilität, um deine ERP/CRM-Lösung an die genauen Anforderungen deines Unternehmens anzupassen – ohne den Core-Code zu verändern.

Wenn du das Grundprinzip einmal verstanden hast, kannst du dein Modul mit weiteren Funktionen, Benutzerrechten, Hooks und automatisierten Abläufen erweitern.

Bemerkungen

Loggen Sie sich ein oder registrieren Sie sich, um Kommentare zu schreiben