Module development: Difference between revisions

m
Line 32: Line 32:
Launch Dolibarr and go to page '''Setup->module'''? You must see a new line with your new module and the possibility to activate it or not (browse all the tabs of each category of modules to find it). It's value of $this->special that determines in which tab will be your module.
Launch Dolibarr and go to page '''Setup->module'''? You must see a new line with your new module and the possibility to activate it or not (browse all the tabs of each category of modules to find it). It's value of $this->special that determines in which tab will be your module.


= Créer vos tables SQL et la classe PHP des accesseurs (optionnel) =
= Create your SQL tables and the PHP accessor class (optionnal) =
'''Quand''': Si votre module a besoin de gérer des données qui lui sont propres
'''When''': If your module needs to manage data of its own


== Créer vos fichiers .sql ==
== Create your .sql file ==
Si votre module a vocation à gérer des données bien a lui, qui n'existent pas en base dans la version standard de Dolibarr, il est nécessaire de définir des tables SQL pour stocker ces données.
If your module is designed to manage data of its own, which are not available in the standard version of Dolibarr, it is necessary to define SQL tables to store the data.
 
Files for your own module must be placed in a directory.
 
Create a subdirectory called "sql" into directory of your module (eg htdocs/mymodule/sql) to put the sql scripts that you will create. Then in the "load_tables" function of your file descriptor module, modify the line


Créer un sous-répertoire '''sql''' dans le repertoire de votre module (par exemple '''htdocs/monmodule/sql''') afin d'y placer les scripts sql que vous aller créer.
Ensuite, dans la fonction load_tables de votre fichier descripteur de module, modifier la ligne
<pre>$dir = DOL_DOCUMENT_ROOT.'/mymodule/sql/';</pre>
<pre>$dir = DOL_DOCUMENT_ROOT.'/mymodule/sql/';</pre>
par
by
<pre>$dir = DOL_DOCUMENT_ROOT.'/monmodule/sql/';</pre>
<pre>$dir = DOL_DOCUMENT_ROOT.'/valuechooseformymodule/sql/';</pre>
 
''Rules to follow:''
* Add the files about creating tables commands on the principle of a file '''llx_matable.sql''' per table with a possibly file '''llx_matable.key.sql''' (see existing files in '''mysql/tables''' for examples).
 
* To manage data, you must create a file called '''data.sql''' inside directory '''/mymodule/sql/''' that contains SQL command to add/edit/delete datas.


''Règle à respecter:''
Example of content of a file data.sql
* Ajouter les fichiers d'ordre de création de vos tables sur le principe d'un fichier '''llx_matable.sql''' par table accompagné éventuellement du fichier '''llx_matable.key.sql''' (voir les fichiers existants dans '''mysql/tables''' pour exemple).
* Pour ce qui est des ordres de gestion des données, ils doivent tous se trouver dans un fichier nommé '''data.sql''' situé dans le même répertoire '''/monmodule/sql/'''.
Exemple de contenu de ficheir data.sql
  delete from llx_const where name='MYMODULE_IT_WORKS' and entity='__ENTITY__';
  delete from llx_const where name='MYMODULE_IT_WORKS' and entity='__ENTITY__';
  insert into llx_const (name, value, type, note, visible, entity) values ('MYMODULE_IT_WORKS','1','chaine','A constant vor my module',1,'__ENTITY__');
  insert into llx_const (name, value, type, note, visible, entity) values ('MYMODULE_IT_WORKS','1','chaine','A constant vor my module',1,'__ENTITY__');


Les fichiers doivent être opérationnels pour la base de données '''mysql'''.
Files must be operational for the database mysql. Rem: The files of other databases are not maintained. They will be read and converted on the fly by the driver of the other database.
Rem: Les fichiers des autres bases ne sont pas à maintenir. Ils sont lus et convertit à la volée par le driver de la base de données.


== Tester vos fichier .sql ==
== Test your .sql files ==


Une fois les fichiers prêts, vous pouvez retourner sous Dolibarr puis désactiver le module, dropper les tables en base et réactiver le module.
Une fois les fichiers prêts, vous pouvez retourner sous Dolibarr puis désactiver le module, dropper les tables en base et réactiver le module.