Difference between revisions of "Modules - Règles de packaging et validation DoliStore"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
Tag: 2017 source edit
Tag: 2017 source edit
Line 24: Line 24:
 
Le premier répertoire dans le fichier zip '''module_mymodulename-VERSION.zip''' doit s'appeler '''mymodulename'''.
 
Le premier répertoire dans le fichier zip '''module_mymodulename-VERSION.zip''' doit s'appeler '''mymodulename'''.
  
Tous les fichiers du module seront ensuite dans ce répertoire, comme fichier ou sous-répertoire, en suivant l'arborescence exemple proposée dans '''htdocs/modulebuilder/template'''.
+
Tous les fichiers du module seront ensuite dans ce répertoire, comme fichier ou sous-répertoire, en suivant l'arborescence exemple proposée dans '''htdocs/modulebuilder/template''' :
  
Voir également sur [[Module_development#Tree_of_path_for_new_module_files_.28required.29]]
+
{{TemplateModuleTreeSimple}}
  
 
===Inclusion===  
 
===Inclusion===  

Revision as of 16:59, 12 December 2019


Art.png Validation/activation d'un module externe sur Dolistore

Voici les règles qui prévalent lors de la soumission à validation d'un module sur https://www.dolistore.com. Ces règles s'appliquent à des soumissions de modules pour Dolibarr. Les fichiers d'autre nature (documentation, outils externes, autres) mis à disposition sur dolistore ne sont pas concernés.


Nommage du package

Tous les modules pour Dolibarr doivent être nommé module_mymodulename-VERSION.zip (où VERSION peut être x or x.y or x.y.z). Si le module est pour un autre logiciel, le nom du zip doit être moduleothersoftware_mymodulename-VERSION.zip (par exemple moduleprestashop_mymodulename-1.0.zip).

Les packages du type application android, document PDF sont libres d'utiliser le nom de leur choix.

Le reste du document ne s'applique que pour les modules Dolibarr uniquement.

Structure

Le premier répertoire dans le fichier zip module_mymodulename-VERSION.zip doit s'appeler mymodulename.

Tous les fichiers du module seront ensuite dans ce répertoire, comme fichier ou sous-répertoire, en suivant l'arborescence exemple proposée dans htdocs/modulebuilder/template :

  • mymodule/build/ can contains any file you develop for compiling or building package
  • mymodule/core/modules/ contains module descriptor file modMyModule.class.php
  • mymodule/core/triggers contains triggers provided by module
  • mymodule/admin/ contains pages to setup module
  • mymodule/class/ contains PHP class files provided by module
  • mymodule/css contains CSS files provided by module
  • mymodule/docs to provide doc and licence files
  • mymodule/img contains images files provided by module
  • mymodule/langs/xx_XX contains language files for language xx_XX (try to put at least en_US)
  • mymodule/lib contains libraries provided and used by module
  • mymodule/scripts to provide command line tools or scripts. Note: Command lines script must start with line #!/usr/bin/env php
  • mymodule/sql contains SQL file provided by module to add new tables or indexes
  • mymodule/theme/mytheme if module provide its own theme/skin
  • mymodule/* contains php pages (note that you can also add any other subdir of your choice). Note: If your module is a metapackage (a module that will embed other modules in same zip, you must put here a file metapackage.conf)

Inclusion

  • Toutes les inclusions de fichier coeur doivent être réalisées par
include_once/require_once/include/require DOL_DOCUMENT_ROOT.'/pathtocorefile';
  • Toutes les inclusions de fichiers spécifiques au module par les pages du modules doivent être faites avec
include_once/require_once/include/require './monmoduledir/...';
  • Toutes les inclusions de fichiers spécifiques à un autre module externe doivent être faites par
dol_include_once('/extmoduledir/...');

Lien

Tous les liens générés pour le HTML vers les pages spécifiques (href, src,...) du module devraient utiliser getNomURL de la classe d'un object ou à minima utiliser dol_buildpath

Répertoire Custom

Un module externe de dolibarr doit pouvoir se mettre dans un répertoire htdocs/custom (cas standard), tout comme dans htdocs/ (cas alternatif), et il doit fonctionner dans les deux cas.

Pas d'écriture dans l'arborescence standard

Le module ne doit pas écrire dans l'arborescence des fichiers "programmes" de Dolibarr mais uniquement dans des fichiers situés dans le répertoire "documents". Y compris pour des fichiers temporaires. Il ne faut pas oublier que sur une installation correcte sécurisée de Dolibarr, l'ensemble de l'arborescence des programmes (à l'exception du répertoire custom) est positionné en lecture seule.

Modifications de fichier core Dolibarr

Compte tenu du point précédent, si des modifications de fichiers du coeur de Dolibarr sont nécessaires au module, elles doivent être soumises au projet via github. Elles seront acceptées :

  • Si elles sont poussées dans la branche dev du GitHub de Dolibarr (cas d'enrichissement de fonctionnalité Dolibarr)
  • Si il s'agit d'ajout de hook, trigger ou fonction, ou ajout de paramètres optionnels à des fonctions existantes. L'ajout de hook permet de permettre à un module externe d'intégrer son propre code n'import où dans le code de Dolibarr.

Information sur la fiche produit

Langue

La description du produit est obligatoire en Anglais.

Support

Si votre module est payant, il doit obligatoirement figurer dans la description du produit un mail ou un canal pour le support aux utilisateurs (comme un lien vers un site web de contact)