Inhaltsverzeichnis

  1. Einführung

  2. Die modulare Architektur von Dolibarr verstehen

  3. Wann und warum sollte ein externes Modul erstellt werden?

  4. Tools und Umgebungseinrichtung

  5. Ordnerstruktur und Dateibenennungskonventionen

  6. Erstellen der Moduldeskriptordatei

  7. Implementieren von Hooks und Triggern

  8. Verwenden der Kernklassen und APIs von Dolibarr

  9. Integration mit vorhandenen Dolibarr-Funktionen

  10. UI/UX-Richtlinien für nahtlose Integration

  11. Verwalten von Berechtigungen und Zugriffskontrolle

  12. Sprachdateiverwaltung und Übersetzungen

  13. Sicherheitsüberlegungen während der Entwicklung

  14. Handhabung von Upgrades und Kompatibilität

  15. Testen Ihres Moduls: Manuell und automatisiert

  16. Verpacken und Verteilen Ihres Moduls

  17. Beitrag zum Dolibarr-Ökosystem

  18. Fazit


1. Einleitung

Der Erfolg von Dolibarr als ERP- und CRM-System beruht auf seinem modularen Aufbau. Benutzer können die Kernfunktionalität von Dolibarr durch externe Module erweitern oder anpassen, ohne die Kerncodebasis zu verändern. Unabhängig davon, ob Sie eine branchenspezifische Erweiterung oder ein Feature-Plugin entwickeln, bietet dieser Leitfaden Best Practices für die Entwicklung wartungsfreundlicher, sicherer und benutzerfreundlicher externer Module für Dolibarr.


2. Die modulare Architektur von Dolibarr verstehen

Dolibarr ist erweiterbar. Jedes Modul arbeitet in seinem eigenen Namespace und Verzeichnis unter /htdocs/custom/ or /htdocs/module/.

Grundprinzipien:

  • Kapselung: Module sind in sich geschlossen.

  • Nicht-Aufdringlichkeit: Module sollten Kerndateien nicht ändern.

  • Wiederverwendbarkeit: Generische Logik sollte für die Wiederverwendung konzipiert werden.

Diese Architektur ermöglicht sichere Upgrades und eine kollaborative Entwicklung.


3. Wann und warum sollte ein externes Modul erstellt werden?

Sie sollten den Aufbau eines Moduls in Betracht ziehen, wenn:

  • Sie benötigen eine benutzerdefinierte Geschäftslogik, die im Dolibarr-Kern nicht enthalten ist.

  • Ihre Funktionen sind spezifisch für Ihr Unternehmen oder Ihre Branche.

  • Sie planen, Funktionen über Dolistore mit anderen zu teilen.

Vorteile:

  • Einfachere Wartung

  • Unabhängigkeit bei der Versionskontrolle

  • Potenzial für die Übernahme durch die Gemeinschaft


4. Tools und Umgebungseinrichtung

Empfohlene Werkzeuge:

  • PHP 7.4+ und MySQL

  • Apache/Nginx mit mod_rewrite

  • Eine lokale Dolibarr-Installation für die Entwicklung

  • Ein Versionskontrollsystem (Git)

Stelle den MAIN_MODULE_CUSTOMDIR in conf.php zeigen auf /htdocs/custom wenn Sie dort Module platzieren.


5. Ordnerstruktur und Dateibenennungskonventionen

Ihr Modul sollte dieser Struktur folgen:

/custom/mycustommodule/
├── class/
├── core/
├── lang/
├── modulebuilder.txt
├── modMycustommodule.class.php
├── mycustommodule.php

Regeln der Namensgebung:

  • Präfixieren Sie Dateien und Klassen mit Ihrem Modulnamen

  • Verwenden Sie Dateinamen in Kleinbuchstaben mit Unterstrichen

  • Klassendateien sollten dem Camel-Case-Format von Dolibarr folgen


6. Erstellen der Moduldeskriptordatei

modMycustommodule.class.php definiert Metadaten:

  • Modulname und -nummer

  • Version

  • Abhängigkeiten

  • Menüs und Berechtigungen

  • Auslöser und Haken

Das init Methode behandelt das Setup und remove kümmert sich um die Bereinigung.


7. Implementierung von Hooks und Triggern

Dolibarr ermöglicht Ihrem Modul die Interaktion mit Kernereignissen über:

  • Haken (UI-Ebene): Schaltflächen, Registerkarten hinzufügen oder Anzeigen überschreiben

  • Auslöser (Datenebene): Ausführen von Aktionen zum Erstellen, Aktualisieren und Löschen

Definieren Sie Haken in hook/ Verzeichnis und registrieren Sie sie in Ihrem Moduldeskriptor.


8. Verwenden der Kernklassen und APIs von Dolibarr

Nutzen Sie vorhandene Dolibarr-Klassen zur Handhabung von:

  • Rechnungen (Facture)

  • Dritte (Societe)

  • Produkte (Product)

Verwenden Sie für externe Integrationen die REST-API oder erstellen Sie Ihre eigenen benutzerdefinierten Endpunkte.


9. Integration mit vorhandenen Dolibarr-Funktionen

Stellen Sie sicher, dass Ihr Modul mit Folgendem gut funktioniert:

  • Multicompany-Modul (prüfen Sie auf conf->entity)

  • Sprachmanagement (Verwendung langs->trans())

  • Benutzerrechte (definieren Sie eindeutige Berechtigungen)


10. UI/UX-Richtlinien für nahtlose Integration

Respektieren Sie die visuellen Standards von Dolibarr:

  • Vorhandene CSS-Klassen verwenden

  • Integrieren Sie Registerkarten nach Möglichkeit in vorhandene Entitäten

  • Vermeiden Sie störende Designänderungen oder benutzerdefinierte Schriftarten

Sorgen Sie dafür, dass es sich wie ein natives System anfühlt.


11. Verwalten von Berechtigungen und Zugriffskontrolle

Ihr Modul sollte:

  • Definieren Sie Berechtigungsschlüssel im Deskriptor

  • Überprüfen Sie die Berechtigungen über user->rights->mycustommodule->access

  • Menüs und Schaltflächen für nicht autorisierte Benutzer ausblenden

Sorgen Sie für eine zentralisierte und konsistente Steuerungslogik.


12. Sprachdateiverwaltung und Übersetzungen

Sprachdateien sollten sich in folgenden Verzeichnissen befinden:

/langs/en_US/mycustommodule.lang

Nutzen Sie langs->load("mycustommodule") und Referenzstrings über langs->trans("MyLabel")

Dies unterstützt mehrsprachige Umgebungen und die Übersetzungs-Community von Dolibarr.


13. Sicherheitsüberlegungen während der Entwicklung

Bewährte Methoden für die Sicherheit:

  • Benutzereingaben bereinigen (dol_htmlentities, GETPOST)

  • Token-Verifizierung für Formulare verwenden

  • Escape-Ausgabe zum Verhindern von XSS

  • Schützen Sie interne Skripte mit Zugriffsprüfungen (restrictedarea())

Vertrauen Sie niemals externen Datenquellen.


14. Handhabung von Upgrades und Kompatibilität

Entwerfen Sie Ihr Modul so, dass es die Versionsentwicklung bewältigen kann:

  • Bewahren Sie die Abwärtskompatibilität, wenn möglich

  • Nutzen Sie module_version Felder zur Verwaltung von Migrationen

  • Integrieren Sie Upgrade-Skripte in Ihr Modul

Sorgen Sie dafür, dass Ihr Modul mit den letzten 2–3 Hauptversionen von Dolibarr kompatibel ist.


15. Testen Ihres Moduls: Manuell und automatisiert

Immer testen:

  • UI-Verhalten

  • Ausführung auslösen

  • Datenbankänderungen

  • Zugriffskontrolle

Erwägen Sie gegebenenfalls das Schreiben von PHPUnit-Tests. Verwenden Sie separate Testumgebungen.


16. Verpacken und Verteilen Ihres Moduls

So veröffentlichen Sie auf Dolistore:

  • Komprimieren Sie Ihren Modulordner ohne übergeordnetes Verzeichnis

  • Umfassen README.md kombiniert mit einem nachhaltigen Materialprofil. CHANGELOG.txt

  • Stellen Sie Screenshots und Dokumentation bereit

Verwenden Sie die semantische Versionierung (1.0.0, 1.1.0) und pflegen Sie Änderungsprotokolle.


17. Beitrag zum Dolibarr-Ökosystem

Sie können:

  • Senden Sie Ihr Modul an Dolistore

  • Verbesserungen auf GitHub teilen

  • Nehmen Sie an Foren und IRC teil

  • Senden Sie Pull Requests für Kernverbesserungen

Durch das Feedback der Community werden sowohl Ihr Modul als auch Dolibarr selbst verbessert.


18. Fazit

Die Entwicklung externer Module ist der effektivste Weg, Dolibarr an die Bedürfnisse Ihres Unternehmens anzupassen und gleichzeitig die Upgrade-Fähigkeit und Stabilität zu gewährleisten. Die Einhaltung bewährter Methoden gewährleistet, dass Ihr Modul sauber, sicher und wartungsfreundlich ist. Da Dolibarr weiter wächst, werden gut entwickelte Module wichtige Treiber für seine Weiterentwicklung und Akzeptanz sein.