Changes

m
Updating interlang links (links to translated versions of this page in other languages) triggered by origin English page "Module_development" update.
Line 7: Line 7:  
[[es:Desarrollo_de_un_módulo]]
 
[[es:Desarrollo_de_un_módulo]]
 
[[zh:模块开发]]
 
[[zh:模块开发]]
 +
[[ja:モジュール_開発]]
 
<!-- END interlang links -->
 
<!-- END interlang links -->
   Line 14: Line 15:  
Um ein neues Modul zu erstellen, gibt es mehrere Schritte. Dieses Tutorial soll beschreiben, wie Sie ein Modul hinzuzufügen können, um die Möglichkeiten von Dolibarr zu erweitern und eine oder mehreren  folgender Funktionen einzufügen:  
 
Um ein neues Modul zu erstellen, gibt es mehrere Schritte. Dieses Tutorial soll beschreiben, wie Sie ein Modul hinzuzufügen können, um die Möglichkeiten von Dolibarr zu erweitern und eine oder mehreren  folgender Funktionen einzufügen:  
   −
*Hinzufügen neuer Basistabellen
+
*Neue Tabellen in die Datenbank einfügen.
*Einfügen eigener Menüeinträge
+
*Einfügen Ihre eigenen Menüeinträge  
 
*Hinzufügen eigener Bildschirmmasken für die Eingabe/Ausgabe von neuen Tabellen
 
*Hinzufügen eigener Bildschirmmasken für die Eingabe/Ausgabe von neuen Tabellen
*Einfügen eines Karteireiter in Objektansichten bzw. Seiten (Rechnung, Produkte, Bestellung, Termine, ...)
+
*Registerkarten auf den Seiten für die Objektansicht und Bearbeitung (Rechnung, Produkt, Bestellung, Termine, ...)
 
*Einfügen eines Datenexport vordefiniert für die Exportfunktion
 
*Einfügen eines Datenexport vordefiniert für die Exportfunktion
*Ergänzen von neuen Boxen für die Startseite
+
*Neue Boxen/Widgets für die Startseite hinzufügen.
 
*Substitutionsvariablen hinzufügen
 
*Substitutionsvariablen hinzufügen
*Definieren von neuen Berechtigungen
+
*Neue Berechtigungen festlegen
*Triggercode für eine automatisierte Dolibarr-Aktion
+
*Triggercode bei einer bestimmten Dolibarr-Aktion auslösen
 
*Eigenen Code an den Dolibarr-Hooks einhängen
 
*Eigenen Code an den Dolibarr-Hooks einhängen
 
*Einfügen von eigenen Nummerierungsmodulen
 
*Einfügen von eigenen Nummerierungsmodulen
 
*Hinzufügen einer Dokumentvorlage
 
*Hinzufügen einer Dokumentvorlage
*Hinzufügen eigener Themen
+
*Hinzufügen eigenes Designs/Themevorlage
    
etc...
 
etc...
    +
In den folgenden Kapiteln erfahren Sie, wie Sie all dies auf einfache Weise manuell umsetzen können.
 +
***
   −
In den folgenden Kapiteln erfahren Sie, wie Sie dies, auf eine einfache Weise, selbst erledigen können.  
+
=[[File:Art.png]] Erstellen von Modulen mit dem Modulgenerator=
    +
Seit Dolibarr 9.0 ist es möglich, die Hauptdateien Ihres Moduls mit dem "Modul-Generator" (auch "Module Builder" genannt) zu erstellen. Um ihn zu aktivieren:
 +
 +
*Aktivieren Sie das Modul "Modulgenerator" in der Sektion "Multi-Modul-Tools".
 +
 +
[[File:Mod_builder_2.png|400px]]
 +
 +
*Dann klicken Sie auf das "Bug"-Symbol, das in der Menüleiste oben rechts erschienen ist.
 +
 +
[[File:Mod_builder_3.png|400px]]
 +
 +
=[[File:Art.png]] Beispiel für eine Vorlage für ein externes Modul=
 +
Eine gute modèle/squelette für ein Dolibarr-Plugin gibt es hier:  [https://github.com/Dolibarr/dolibarr/tree/develop/htdocs/modulebuilder/template GitHub Dolibarr Module Modèle]
 +
 +
=[[File:Art.png]] Ein Modul erstellen=
 +
Die folgenden Unterkapitel beschreiben die Aktionen, die Sie durchführen müssen, um ein Dolibarr-Modul zu erstellen. Die ersten Kapitel sind unabhängig vom Zweck des Moduls obligatorisch, die folgenden hängen davon ab, was das Modul tun soll.
 +
 +
==Einen Moduldeskriptor erstellen (erforderlich)==
 +
'''Wann''': Obligatorisch, sobald eine Erweiterung entwickelt wird, unabhängig von ihrer Bestimmung.
 +
'''Seit Dolibarr 9.0 ist es möglich, den Deskriptor Ihres Moduls mit dem "Modulgenerator" zu erstellen'''. Dieses Tool befindet sich noch in der Entwicklungsphase und ist noch nicht ausgereift, kann aber bereits genutzt werden.
 +
 +
===Erstellen Sie Ihren Deskriptor mit dem Modulgenerator===
 +
 +
*Starten Sie den Modulgenerator, indem Sie auf das "bug"-Symbol klicken.
 +
 +
[[File:Mod_builder_3.png|400px]]
 +
 +
*Geben Sie den Namen Ihres Moduls ohne Leerzeichen ein (der Name Ihres Moduls DARF NICHT das Zeichen underscore oder Unterstrich : _) und klicken Sie auf Erstellen.
 +
 +
[[File:Mod_builder_4.png|400px]]
 +
 +
*Ein Modul mit seinen ersten Dateien wurde initialisiert. Sie können nun die Einstellungen des Moduldeskriptors ändern:
 +
 +
[[File:Mod_builder_5.png|400px]]
 +
 +
===Alternative: Erstellen Sie Ihren Deskriptor manuell (ohne den Modulgenerator zu verwenden)===
 +
Der erste Schritt besteht also darin, eine Datei mit der Modulbeschreibung (Deskriptor) zu erstellen. Zu diesem Zweck:
 +
 +
*Erstellen Sie das Verzeichnis '''/htdocs/'''meinmodul'''/core/modules'''. Wechseln Sie dann in das Verzeichnis '''dev/skeletons''' und kopieren Sie die Datei modMyModule.class.php in dieses Verzeichnis '''htdocs/'''monmodule''''/core/modules'''.
 +
*Benennen Sie die Datei mod'''MyModule'''.class.php um, indem Sie nur den Teil '''MyModule''' ändern (die Datei muss mit mod beginnen).
 +
 +
Ändern Sie anschließend den Inhalt dieser Datei, um :
 +
 +
*den ''modMyModule'' in einen Wert, der dem Zweck Ihres Moduls entspricht. Dieser Wert sollte immer mit '<nowiki/>'''mod'''' beginnen und nur '''alphabetische Zeichen''' enthalten.
 +
*$this->numero = ''100000'' durch eine freie Modulnummer. Um Konflikte zu vermeiden, können Sie auf folgender Seite nach bereits zugeteilten Nummern suchen: [[List of modules id|Liste der Modul-IDs]].
 +
*Ändern Sie eventuell andere Variablen, die im Konstruktor definiert sind (Was sie bedeuten, finden Sie im Kommentar im Skelett-Code).
 +
 +
Der Deskriptor Ihres Moduls ist nun an seinem Platz.
 +
 +
***
    
=[[File:Art.png]] Beispielvorlage für ein Modul/Pluginodule=
 
=[[File:Art.png]] Beispielvorlage für ein Modul/Pluginodule=
Line 273: Line 325:  
</syntaxhighlight>
 
</syntaxhighlight>
 
La raison est que si le dol_include_once est pratique car il scanne chaque répertoire de chemin alternatifs pour trouver le fichier, il est aussi moins performant car génère des accès et recherches disque à chaque appel (en effet, PHP intègre un cache des fichiers lus mais n'intègre pas un cache des fichiers "non trouvés". Et comme un fichier donné n'est que dans une seule arborescence, il y a toujours une arborescence alternative où il ne se trouve pas et qui génère des accès superflus au disque dur, pénalisant en terme de performance. Comme pour les fichiers internes à Dolibarr, on connait toujours le chemin exacte, le require_once avec ce chemin direct doit être préféré).
 
La raison est que si le dol_include_once est pratique car il scanne chaque répertoire de chemin alternatifs pour trouver le fichier, il est aussi moins performant car génère des accès et recherches disque à chaque appel (en effet, PHP intègre un cache des fichiers lus mais n'intègre pas un cache des fichiers "non trouvés". Et comme un fichier donné n'est que dans une seule arborescence, il y a toujours une arborescence alternative où il ne se trouve pas et qui génère des accès superflus au disque dur, pénalisant en terme de performance. Comme pour les fichiers internes à Dolibarr, on connait toujours le chemin exacte, le require_once avec ce chemin direct doit être préféré).
  −
===Remplacer les parties d'écrans templatés (version 3.3+)===
  −
Certaines portion d'écran de Dolibarr sont isolés dans des fichiers templates.
  −
Vous pouvez développer un module pour remplacer un ou plusieurs de ces templates par les vôtres.
  −
{{ToComplete}}
      
===Accès à la base===
 
===Accès à la base===
1,978

edits