Changes

m
ajout d'un lien vers la page du fichier de conf pour mettre en avant la variable $dolibarr_allow_download_external_modules
Line 7: Line 7:  
[[de:Modul_Entwicklung]]
 
[[de:Modul_Entwicklung]]
 
[[zh:模块开发]]
 
[[zh:模块开发]]
 +
[[ja:モジュール_開発]]
 
<!-- END interlang links -->
 
<!-- END interlang links -->
   Line 33: Line 34:  
Depuis Dolibarr 9.0 il est possible de créer les fichiers principaux de votre module avec le "Générateur de module" (aussi appelé "Module Builder"). Pour l'activer :
 
Depuis Dolibarr 9.0 il est possible de créer les fichiers principaux de votre module avec le "Générateur de module" (aussi appelé "Module Builder"). Pour l'activer :
   −
*Activez le module "Générateur de Module" dans la section "Outils multi-modules"
+
*Activez le module "Générateur de Module" (ou "Module builder") dans la section "Outils multi-modules" de Configuration > Modules/Applications
    
[[File:Mod_builder_2.png|400px]]
 
[[File:Mod_builder_2.png|400px]]
Line 43: Line 44:  
=[[File:Art.png]] Exemple de modèle de module externe=
 
=[[File:Art.png]] Exemple de modèle de module externe=
 
Un bon modèle/squelette de module externe Dolibarr est disponible ici : [https://github.com/Dolibarr/dolibarr/tree/develop/htdocs/modulebuilder/template GitHub Dolibarr Module Modèle]
 
Un bon modèle/squelette de module externe Dolibarr est disponible ici : [https://github.com/Dolibarr/dolibarr/tree/develop/htdocs/modulebuilder/template GitHub Dolibarr Module Modèle]
 +
 +
Vous trouverez aussi un exemple de réalisation de module via un cas pratique : la création d'un module afin de créer un calendrier des commandes fournisseurs : [[Exemple de cas pratique de Module Builder]]
    
=[[File:Art.png]] Créer un module=
 
=[[File:Art.png]] Créer un module=
Line 49: Line 52:  
==Créer un descripteur de Module (obligatoire)==
 
==Créer un descripteur de Module (obligatoire)==
 
'''Quand''' : Obligatoire dès qu'une extension est développée, quelle que soit sa vocation.
 
'''Quand''' : Obligatoire dès qu'une extension est développée, quelle que soit sa vocation.
'''Depuis Dolibarr 9.0, il est possible de créer le descripteur de votre module avec le "Générateur de module"'''. Cet outil est encore encours de développement et de maturité mais peut dors et déjà être utilisé.
+
'''Depuis Dolibarr 9.0, il est possible de créer le descripteur de votre module avec le "Générateur de module"'''. Cet outil est encore encours de développement et de maturité mais peut d'ores et déjà être utilisé.
    
===Créer votre descripteur avec le générateur de module===
 
===Créer votre descripteur avec le générateur de module===
Line 96: Line 99:     
==Créer vos tables SQL et les classes PHP DAO (optionnel)==
 
==Créer vos tables SQL et les classes PHP DAO (optionnel)==
'''Quand''': Si votre module a besoin de gérer des données qui lui sont propres
+
'''Quand''' : Si votre module a besoin de gérer des données qui lui sont propres
    
===Créer vos fichiers .sql===
 
===Créer vos fichiers .sql===
Line 127: Line 130:  
===Tester vos fichiers .sql===
 
===Tester vos fichiers .sql===
   −
Une fois les fichiers prêts, vous pouvez retourner dans l'écran de gestion des modules de Dolibarr puis désactiver le module, dropper les tables en base (si elles existe déjà) et réactiver le module.
+
Une fois les fichiers prêts, vous pouvez retourner dans l'écran de gestion des modules de Dolibarr puis désactiver le module, dropper les tables en base (si elles existent déjà) et réactiver le module.
 
Les tables doivent alors être recréées par l'activation du module.
 
Les tables doivent alors être recréées par l'activation du module.
 
Si tel n'est pas le cas, vérifiez vos scripts en les passant à la main, ou consultez les logs Dolibarr.
 
Si tel n'est pas le cas, vérifiez vos scripts en les passant à la main, ou consultez les logs Dolibarr.
Line 135: Line 138:  
Le fichier de classe DAO PHP d'un object est généré automatiquement avec ModuleBuilder lors de la création d'un Object.
 
Le fichier de classe DAO PHP d'un object est généré automatiquement avec ModuleBuilder lors de la création d'un Object.
   −
A défaut d'utiliser le générateur de module, vous trouverez des exemples dans le squelette de module, fichier '''htdocs/modulebuilder/templates/class/myobject.class.php'''.
+
À défaut d'utiliser le générateur de module, vous trouverez des exemples dans le squelette de module, fichier '''htdocs/modulebuilder/templates/class/myobject.class.php'''.
   −
Dans cette classe, se trouve des méthodes CRUD (Create/Read/Update/Delete) déjà opérationnelles pour faire un insert, un fetch (select), un update, un delete d'une ligne de la table. Editer le fichier pour utiliser le bon nom de module, de tables et placer ce fichier dans le sous-répertoire de '''class''' du module. Le Module Builder permet de faire cela en quelques clics de souris.
+
Dans cette classe, se trouvent des méthodes CRUD (Create/Read/Update/Delete) déjà opérationnelles pour faire un insert, un fetch (select), un update, un delete d'une ligne de la table. Éditer le fichier pour utiliser le bon nom de module, de tables et placer ce fichier dans le sous-répertoire de '''class''' du module. Le Module Builder permet de faire cela en quelques clics de souris.
    
==Affichage des onglets (optionnel)==
 
==Affichage des onglets (optionnel)==
Line 202: Line 205:  
</source>
 
</source>
   −
'''3. Récupérer la liste des onglets correspondants à l'entité choisie'''
+
'''3. Récupérer la liste des onglets correspondant à l'entité choisie'''
    
Utilisez la fonction XXX_prepare_head($obj), ou XXX est le nom de l'entité, permettant de créer un tableau contenant les définitions des onglets à afficher. Le paramètre à passer est l'objet pour lequel vous voulez afficher les onglets.
 
Utilisez la fonction XXX_prepare_head($obj), ou XXX est le nom de l'entité, permettant de créer un tableau contenant les définitions des onglets à afficher. Le paramètre à passer est l'objet pour lequel vous voulez afficher les onglets.
Line 245: Line 248:     
===Créer une page écran PHP brute===
 
===Créer une page écran PHP brute===
Vous pouvez ensuite créer vos pages PHP, qui se basent sur les données de vos tables, en utilisant les squelettes fournis comme exemple dans le répertoire '''modulebuilder''' (Pour le développement d'un script en ligne de commande, voir [[Développement de scripts]]). La encore, si vous avez utilisez ModuleBuilder, des cas de pages (liste, page de création, onglet ntes, etc...) auront été créés automatiquement lors de l'initialisation de l'objet.
+
Vous pouvez ensuite créer vos pages PHP, qui se basent sur les données de vos tables, en utilisant les squelettes fournis comme exemple dans le répertoire '''modulebuilder''' (Pour le développement d'un script en ligne de commande, voir [[Développement de scripts]]). La encore, si vous avez utilisez ModuleBuilder, des cas de pages (liste, page de création, onglet notes, etc...) auront été créés automatiquement lors de l'initialisation de l'objet.
    
Pour créer une nouvelle page écran utilisateur, créez un sous-répertoire de '''htdocs''' (si non déjà fait) propre à votre module (Dans '''htdocs/monmodule''' par exemple) afin d'y placer les pages que vous allez créer.
 
Pour créer une nouvelle page écran utilisateur, créez un sous-répertoire de '''htdocs''' (si non déjà fait) propre à votre module (Dans '''htdocs/monmodule''' par exemple) afin d'y placer les pages que vous allez créer.
Line 369: Line 372:  
Ensuite dans le descripteur de module, modifiez la variable pour indiquer le nom de cette page PHP (sans le chemin qui n'est pas nécessaire, la page étant forcément dans le rep admin).
 
Ensuite dans le descripteur de module, modifiez la variable pour indiquer le nom de cette page PHP (sans le chemin qui n'est pas nécessaire, la page étant forcément dans le rep admin).
 
<source lang="php">
 
<source lang="php">
$this->config_page_url = array("monmodule_setupapage.php");
+
$this->config_page_url = array("setup.php@mymodule");
 
</source>
 
</source>
   Line 456: Line 459:  
</source>
 
</source>
   −
==Définir vos propres box (optionnel)==
+
==Définir vos propres box/widgets (optionnel)==
 
'''Quand''' : si votre module amène avec lui une ou plusieurs Boxes.
 
'''Quand''' : si votre module amène avec lui une ou plusieurs Boxes.
   Line 472: Line 475:  
</source>
 
</source>
   −
Ensuite créez les fichiers '''htdocs/monmodule/core/boxes/mabox0.php''', '''htdocs/monmodule/core/boxes/mabox1.php'''... en prenant exemple sur des box existantes (exemple dans le répertoire '''htdocs/core/boxes''')
+
Ensuite créez les fichiers '''htdocs/monmodule/core/boxes/mabox0.php''', '''htdocs/monmodule/core/boxes/maboxn.php'''... en prenant exemple sur des box existantes (exemple dans le répertoire '''htdocs/core/boxes''')
    
===Testez la présence de vos box dans Dolibarr===
 
===Testez la présence de vos box dans Dolibarr===
 
Désactivez et réactivez le module.
 
Désactivez et réactivez le module.
   −
Allez dans le menu '''Accueil - Configuration - Boite'''.
+
Allez dans le menu '''Accueil - Configuration - Widgets'''.
    
Vos box doivent apparaître dans la liste des box activables. Activez les puis allez sur la page d'accueil et vérifiez qu'elles s'affichent correctement.
 
Vos box doivent apparaître dans la liste des box activables. Activez les puis allez sur la page d'accueil et vérifiez qu'elles s'affichent correctement.
Line 552: Line 555:     
Voir la page [[Themes]].
 
Voir la page [[Themes]].
 +
 +
==Ajouter un bouton (optionnel)==
 +
Si vous souhaitez ajouter des boutons à vos enregistrements.
 +
 +
Voir la page [[Création de boutons]].
    
=[[File:Art.png]] Quelques règles de codage et fonctions pour développeurs=
 
=[[File:Art.png]] Quelques règles de codage et fonctions pour développeurs=
Line 583: Line 591:  
**Si votre module a été fabriqué correctement, le fichier sera validé rapidement.
 
**Si votre module a été fabriqué correctement, le fichier sera validé rapidement.
 
**Si la qualité est suffisante, que la licence le permet et que la fonctionnalité du module s'avère être d'un intérêt général, le code pourra être ajouté au code source de Dolibarr (sauf si vous ne le désirez pas).
 
**Si la qualité est suffisante, que la licence le permet et que la fonctionnalité du module s'avère être d'un intérêt général, le code pourra être ajouté au code source de Dolibarr (sauf si vous ne le désirez pas).
 +
 +
Il également possible récupérer votre module au format .zip en ayant activé la variable [[Fichier de configuration|$dolibarr_allow_download_external_modules à 1 dans le fichier conf.php]].
    
=[[File:Art.png]] Dépôt et validation du module externe sur Dolistore=
 
=[[File:Art.png]] Dépôt et validation du module externe sur Dolistore=
    
Voir [[Module_Dolistore_Validation_Regles|Règles de Validation]]
 
Voir [[Module_Dolistore_Validation_Regles|Règles de Validation]]
39

edits