Inhaltsverzeichnis
-
Einführung
-
Die Dolibarr-Architektur verstehen
-
Warum benutzerdefinierte Module entwickeln?
-
Vorbereiten Ihrer Entwicklungsumgebung
-
Anatomie eines Dolibarr-Moduls
-
5.1 Der Moduldeskriptor (modMyModule.class.php)
-
5.2 Verzeichnisstruktur
-
5.3 Hooks, Trigger und Berechtigungen
-
-
Erstellen Sie Ihr erstes Modul Schritt für Schritt
-
6.1 Benennung und Initialisierung
-
6.2 Hinzufügen von Menüs und Berechtigungen
-
6.3 Erstellen von Datenbanktabellen
-
6.4 Erstellen von Seiten und Schnittstellen
-
6.5 Umgang mit Formularen und Aktionen
-
-
Dolibarr-Hooks und -Trigger verstehen
-
Best Practices für die Modulentwicklung
-
Verpacken und Verteilen Ihres Moduls
-
Verwenden der Dolibarr-API in Ihren Modulen
-
Debuggen, Protokollieren und Wartung
-
Häufige Fallstricke, die es zu vermeiden gilt
-
Erweiterte Anwendungsfälle und Ideen
-
Fazit
-
Ressourcen für Entwickler
1. Einleitung
Dolibarr ERP & CRM hat sich dank seiner modularen Struktur und seines entwicklerfreundlichen Ökosystems zu einer weit verbreiteten Open-Source-Lösung für die Verwaltung von Geschäftsprozessen entwickelt. Einer seiner größten Vorteile ist, dass Entwickler können die Funktionalität erweitern durch benutzerdefinierte Module – ohne den Kern zu ändern.
Egal, ob Sie Funktionen für den internen Gebrauch, Kundenprojekte oder den kommerziellen Vertrieb erstellen, das Verständnis der Erstellung Ihres eigenen Dolibarr-Moduls eröffnet Ihnen endlose Möglichkeiten. Dieser Leitfaden ist speziell für Entwickler, und es befasst sich eingehend mit der Struktur, den Best Practices und der praktischen Implementierung von benutzerdefinierten Modulen für Dolibarr.
Von der Erstellung eines einfachen „Hallo Welt“-Moduls bis hin zu erweiterten Funktionen wie benutzerdefinierten Berechtigungen, REST-API-Endpunkten und dynamischen Menüs – dieser Leitfaden führt Sie durch den gesamten Prozess.
2. Die Dolibarr-Architektur verstehen
Bevor Sie Ihre erste Codezeile schreiben, ist es wichtig zu verstehen wie Dolibarr unter der Haube funktioniertDolibarr ist geschrieben in PHPund folgt einer modularen Architektur, bei der:
-
Jedes Modul ist in seinem eigenen Verzeichnis enthalten.
/htdocs/custom/or/htdocs/module_name/. -
Module werden zur Laufzeit geladen, basierend auf dem Aktivierungsstatus im Backoffice.
-
Es verwendet a Single-Entry-Point-Struktur, wobei alle URLs durchlaufen
main.inc.phpzur Initialisierung. -
Die Datenbankverwaltung erfolgt über Dolibarrs integrierte ORM-Funktionen Google Trends, Amazons Bestseller
dol_sql_insert,dol_sql_update, usw. -
Der Benutzerzugriff wird über eine granulares Berechtigungssystem Verwendung der
user->rightsObjekt.
Module können in vorhandene Kernfunktionen eingebunden werden, eigene Menüs hinzufügen, Vorlagen verwenden oder benutzerdefinierte Geschäftslogik erstellen.
3. Warum benutzerdefinierte Module entwickeln?
Es gibt mehrere Gründe, ein eigenes Dolibarr-Modul zu erstellen:
-
Maßgeschneiderte Funktionen: Implementieren Sie spezifische Funktionen für einzigartige Arbeitsabläufe.
-
Effizienz steigern: Automatisieren Sie Aufgaben und vereinfachen Sie Schnittstellen für Endbenutzer.
-
Datenintegrationen: Bauen Sie Brücken mit externen APIs, Buchhaltungstools oder benutzerdefinierten Dashboards.
-
Weiterverkaufen oder verteilen: Veröffentlichen am Dolistore oder GitHub, damit andere es verwenden können.
-
Aufrüstbarkeit beibehalten: Vermeiden Sie Änderungen am Kern, um sicherzustellen, dass zukünftige Dolibarr-Upgrades reibungslos verlaufen.
Anstatt den Quellcode zu manipulieren (was die Kompatibilität und Wartbarkeit beeinträchtigt), können Sie mit Modulen Dolibarr richtig erweitern.
4. Vorbereiten Ihrer Entwicklungsumgebung
Stellen Sie vor dem Start sicher, dass Sie über ein funktionierendes Entwicklungs-Setup verfügen.
4.1 Erforderliche Werkzeuge
-
PHP 7.4–8.x (abhängig von Ihrer Dolibarr-Version)
-
MySQL oder MariaDB
-
Apache oder NGINX
-
Eine lokale Entwicklungsumgebung (XAMPP, WAMP, MAMP, Docker usw.)
-
Git (empfohlen für die Versionskontrolle)
Sie möchten auch eine gute Code-Editor oder IDE wie VS-Code, PhpStorm oder Sublime Text.
4.2 Empfohlene Konfiguration
-
Klonen Sie die neueste stabile Dolibarr-Version von GitHub.
-
Erstellen Sie einen virtuellen Host, der auf
/htdocs. -
Speichern Sie Ihr Modul im
/htdocs/custom/Verzeichnis, um es von den Kernmodulen zu trennen. -
Aktivieren Sie die Fehlerberichterstattung in Ihrem
php.inioder benutzendolibarr_devKonstanten zum Debuggen.
4.3 Dolibarr-Entwicklertools
Installieren oder aktivieren Sie:
-
Modul-Generator: Ein Hilfsmodul, das die Grundstruktur eines neuen Moduls erstellt.
-
Entwicklertools-Modul: Bietet Einblicke in Variablen, Hooks und Seiteninterna.
-
Web Profiler-Modul (optional): Für Leistungsbenchmarking.
5. Anatomie eines Dolibarr-Moduls
Das Verständnis der Struktur eines Moduls ist entscheidend. Ein Dolibarr-Modul besteht mindestens aus:
-
A Moduldeskriptor Datei: Definiert Metadaten und Aktivierungslogik.
-
A Verzeichnis mit Unterordnern für Seiten, Klassen, Vorlagen und SQL.
-
Optional Haken, löst und Sprachdateien.
5.1 Der Moduldeskriptor (modMyModule.class.php)
Jedes Modul beginnt mit einer Deskriptorklasse. Hier ist ein minimales Beispiel:
Diese Datei teilt Dolibarr mit, wie Ihr Modul installiert, aktiviert und identifiziert wird.
5.2 Verzeichnisstruktur
Hier ist eine grundlegende Ordnerstruktur eines typischen Moduls:
Sie können Ordner hinzufügen für js, css, tpl (Vorlage) und lib wie benötigt.
6. Schrittweises Erstellen Ihres ersten Moduls
Dieser Abschnitt führt Sie durch die Erstellung eines funktionalen benutzerdefinierten Moduls von Grund auf. Ziel ist es, Ihnen einen praktischen Leitfaden zu geben, den Sie an Ihre Bedürfnisse anpassen können.
6.1 Benennung und Initialisierung
Jedes Modul muss über eine einzigartiger Name und Modulnummer. Beachten Sie die Namenskonventionen, um Konflikte zu vermeiden:
-
Nutzen Sie CamelCase für Klassen- und Modulnamen (z. B.
modMyCustomModule) -
Die Dateistruktur muss die Benennung widerspiegeln (z. B.
modMyCustomModule.class.phpim Stammverzeichnis) -
Wählen Sie ein einzigartiges
numero(z.B,104001) nicht bereits von anderen Modulen verwendet
Aktivieren Sie Ihr Modul von Home > Setup > Module/Anwendungen nachdem Sie es in /htdocs/custom/.
6.2 Hinzufügen von Menüs und Berechtigungen
Dolibarr-Menüs werden im Deskriptor mit dem hinzugefügt $this->menu[] Array. Hier ist ein Beispiel für ein Haupt- und Untermenü:
Definieren Sie Berechtigungen in der gleichen Datei unter $this->rights[]:
6.3 Erstellen von Datenbanktabellen
Das Datenbankschema wird durch SQL-Skripte initialisiert, die in /sql/.
SQL-Datei installieren: mymodule.sql
Verweisen Sie in Ihrer Beschreibung darauf:
Dolibarr führt dieses Skript bei der Installation Ihres Moduls automatisch aus.
Um Ihr Schema in späteren Versionen zu aktualisieren, fügen Sie Upgrade-SQL-Dateien hinzu:
6.4 Erstellen von Seiten und Schnittstellen
Erstellen Sie einen Ordner /page/ und fügen Sie Ihre erste Schnittstelle hinzu, zB, dashboard.php.
Verwenden Sie Dolibarrs UI-Helfer wie:
-
print load_fiche_titre() -
dol_print_date() -
dol_buildpath() -
dol_escape_htmltag()
Dolibarr bietet Formularhelfer und Tools zum Rendern von Objektansichten, um die Konsistenz mit der Benutzeroberfläche zu gewährleisten.
6.5 Umgang mit Formularen und Aktionen
Für Seiten, die Daten ändern oder speichern, verwendet Dolibarr eine gemeinsame Controllerstruktur.
Auf Ihrer Formularbearbeitungsseite:
Verwenden Sie Dolibarr's GETPOST() kombiniert mit einem nachhaltigen Materialprofil. $db->escape() um Injektionsschwachstellen zu verhindern.
7. Dolibarr-Hooks und -Trigger verstehen
Dolibarr ermöglicht Ihnen Kernaktionen erweitern Verwendung:
-
Auslöser (
triggerInterface) -
Haken (
hookmanager)
7.1 Trigger verwenden
Trigger werden bei Systemereignissen wie den folgenden ausgelöst:
-
BILL_CREATE -
ORDER_VALIDATE -
PRODUCT_DELETE
Erstellen Sie eine Datei /core/triggers/interface_99_modMyModule_MyTriggers.class.php
Ejemplo:
7.2 Verwenden von Hooks
Mit Hooks können Sie Inhalte in vorhandene Seiten oder Schnittstellen einfügen.
Beispielverwendung auf Ihrer Seite:
Dadurch kann Ihr Modul in Ereignisse eingebunden werden, die ausgelöst werden von Dolibarr-Kern oder andere Module.
8. Best Practices für die Modulentwicklung
Bei der Entwicklung eines Dolibarr-Moduls geht es nicht nur darum, funktionalen Code zu schreiben – es geht darum, sauberer, wartungsfreundlicher und sicherer Code das den Konventionen von Dolibarr folgt.
8.1 Namenskonventionen einhalten
-
Verwenden Sie Kleinbuchstaben für Ordner und Großbuchstaben für Klassendateien.
-
Präfixieren Sie Ihre Tabellen mit
llx_und eine eindeutige Modulkennung. -
Vermeiden Sie Namenskonflikte mit vorhandenen Modulen oder Kernfunktionen.
8.2 Logik und Präsentation trennen
Anwendung:
-
.phpDateien in/page/für Schnittstellen -
Klassen in
/class/für Geschäftslogik -
Template in
/tpl/für das Layout
Durch Befolgen des MVC-Prinzips lässt sich Ihr Modul leichter debuggen und skalieren.
8.3 Verwenden Sie Berechtigungen sorgfältig
Programmieren Sie die Zugriffslogik nicht fest. Überprüfen Sie immer:
Bieten feinkörnige Berechtigungen für:
-
Lesebrillen
-
Schreiben
-
Löschen
-
Validierung
Dies gewährleistet die Kompatibilität mit der Benutzer-/Rollenarchitektur von Dolibarr.
8.4 Sichern Sie Ihre SQL- und Eingabeverarbeitung
-
Nutzen Sie
GETPOST()mit entsprechenden Typfiltern. -
Bereinigen Sie die gesamte Ausgabe mit
dol_escape_htmltag()ordol_htmlentities(). -
Nutzen Sie
$db->escape()für SQL-Werte. -
Vermeiden Sie die Verwendung von Rohkost
$_POST,$_GEToder nicht maskierte Werte.
8.5 Dokumentieren Sie Ihren Code
-
Fügen Sie PHPDoc-Header in Klassen und Funktionen ein.
-
Kommentieren Sie alle SQL-Abfragen und Geschäftsregeln.
-
Enthalten a
README.mdin Ihrem Modulordner.
9. Verpacken und Verteilen Ihres Moduls
Sobald Ihr Modul getestet und bereit ist, können Sie verpacken und teilen mit anderen.
9.1 Erforderliche Dateien für die Verteilung
Inklusive:
-
modMyModule.class.php -
SQL-Skripte (installieren und aktualisieren)
-
A
README.mdDatei mit Anweisungen -
Sprachdateien in
/lang/ -
Optional: Logo, Screenshots, Lizenz und Versionsänderungsprotokoll
9.2 Vertrieb auf Dolistore
Dolistore ist der offizielle Marktplatz für Dolibarr-Module.
So reichen Sie Ihr Modul ein:
-
Erstellen Sie
.zipDatei Ihres Modulordners -
Stellen Sie sicher, dass es Dolibarrs Veröffentlichungsstandards
-
Bereitstellung von Dokumentation, Kompatibilitätsversion und Kontaktinformationen
-
Wählen Sie eine Lizenz (vorzugsweise GNU GPL v3)
-
Senden Sie über die Dolistore-Anbieterschnittstelle
Module können verteilt werden kostenlos registrieren or kommerziell mit Lizenzkontrolle.
10. Verwenden der Dolibarr-API in Ihren Modulen
Dolibarr beinhaltet eine REST API das die programmgesteuerte Interaktion externer Tools und interner Module ermöglicht.
10.1 Aktivieren der API
Gehe zu:
Home > Setup > Module > Webdienste (API) und aktivieren Sie das Modul.
10.2 Authentifizierungsmethoden
-
API-Schlüssel (pro Benutzer definiert)
-
OAuth 2.0 (erweiterte Nutzung)
-
Stellen Sie sicher, dass alle Anfragen
https://yourdomain.com/api/index.php/
10.3 Beispiel für die API-Nutzung
Alle Drittanbieter abrufen:
10.4 Verwenden der API in Ihrem Modul
Du kannst auch externe APIs nutzen in Ihrem Modul:
Verwenden Sie APIs, um Daten mit folgenden Geräten zu synchronisieren:
-
E-Commerce-Plattformen (WooCommerce, PrestaShop)
-
Buchhaltungstools (Xero, QuickBooks)
-
E-Mail-Plattformen (SendGrid, Mailchimp)
11. Debugging, Protokollierung und Wartung
Durch effektives Debuggen wird sichergestellt, dass Ihr Modul stabil und produktionsbereit ist.
11.1 Fehlerbehandlung
Verwenden Sie die integrierten Fehlerfunktionen von Dolibarr:
Protokollieren Sie benutzerdefinierte Aktionen mit:
Aktivieren Sie die Anmeldung conf.php:
11.2 Entwicklungskonstanten
Verwenden Sie diese, um Fehler aufzudecken:
Drehen Sie diese immer in der Produktion.
12. Häufige Fallstricke, die es zu vermeiden gilt
-
❌ Ändern von Kerndateien – Verwenden Sie immer Module, Hooks und Overrides.
-
❌ Überspringen von Berechtigungen – Dadurch können vertrauliche Daten offengelegt werden.
-
❌ Versionskompatibilität ignorieren – Testen Sie Ihr Modul mit allen unterstützten Dolibarr-Versionen.
-
❌ Hardcoding von Pfaden oder URLs - Benutzen
DOL_URL_ROOTkombiniert mit einem nachhaltigen Materialprofil.dol_buildpath(). -
❌ Schlechtes SQL-Design – Verwenden Sie Indizes, befolgen Sie Namenskonventionen und vermeiden Sie unnötig große JOINs.
13. Erweiterte Anwendungsfälle und Ideen
Wenn Sie mit den Basismodulen vertraut sind, erkunden Sie diese erweiterten Ideen:
13.1 Benutzerdefinierte PDF-Generatoren
Erstellen Sie benutzerdefinierte Dokumente (Angebote, Rechnungen, Etiketten) durch Erweiterung /core/modules/pdf/.
Definieren Sie Ihre eigene Klasse wie:
13.2 Benutzerdefinierte Nummerierungsmodelle
Fügen Sie personalisierte Rechnungs- oder Bestellnummernformate hinzu, indem Sie /core/modules/xxx/ -Ordner.
13.3 Geplante Aufgaben
Nutzen Sie cron Modul zur Automatisierung von Prozessen (z. B. tägliche Backups, E-Mail-Benachrichtigungen, Stapelberichte).
Aufgaben registrieren über:
14. Fazit
Die Erstellung Ihres eigenen Dolibarr-Moduls ermöglicht Ihnen umfassende Anpassungen und leistungsstarke Automatisierung, die auf Ihr Unternehmen oder Ihre Kunden zugeschnitten sind. Der modulare Aufbau von Dolibarr ermöglicht Ihnen die Erstellung von:
-
Benutzerdefinierte Schnittstellen
-
Dateneingabetools
-
Workflow-Automatisierung
-
REST-integrierte Lösungen
-
Dynamische PDF-Generatoren
-
Vollständige Enterprise-Funktionen – ohne Eingriff in Kerndateien
Unter Berücksichtigung bewährter Methoden, Sicherheit und Wartbarkeit können Sie professionelle Module entwickeln, die mit Dolibarr skalierbar sind und einen echten Mehrwert bieten.
