Développement module: Difference between revisions

m
Uniformisation MonModule vs MyModule
No edit summary
m (Uniformisation MonModule vs MyModule)
Line 58: Line 58:
Exemple de contenu de fichier data.sql
Exemple de contenu de fichier data.sql
<source lang="sql">
<source lang="sql">
  delete from llx_const where name='MYMODULE_IT_WORKS' and entity='__ENTITY__';
  delete from llx_const where name='MONMODULE_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 ('MONMODULE_IT_WORKS','1','chaine','A constant vor my module',1,'__ENTITY__');
</source>
</source>


Line 91: Line 91:
<source lang="php">
<source lang="php">
// Array to add new pages in new tabs or remove existing one
// Array to add new pages in new tabs or remove existing one
$this->tabs = array('objecttype:+tabname1:Title1:@mymodule:/mymodule/mynewtab1.php?id=__ID__',  // To add a new tab identified by code tabname1
$this->tabs = array('objecttype:+tabname1:Title1:@monmodule:/monmodule/mynewtab1.php?id=__ID__',  // To add a new tab identified by code tabname1
                             'objecttype:+tabname2:Title2:@mymodule:/mymodule/mynewtab2.php?id=__ID__',  // To add another new tab identified by code tabname2
                             'objecttype:+tabname2:Title2:@monmodule:/monmodule/mynewtab2.php?id=__ID__',  // To add another new tab identified by code tabname2
                             'objecttype:-tabname');                                                    // To remove an existing tab identified by code tabname
                             'objecttype:-tabname');                                                    // To remove an existing tab identified by code tabname
</source>
</source>
Line 116: Line 116:
* Partie 2: Nom de code pour l'onglet à ajouter (commence par +) ou à enlever (commence par -)
* Partie 2: Nom de code pour l'onglet à ajouter (commence par +) ou à enlever (commence par -)
* Partie 3: Le titre de l'onglet. Cela peut être un libellé en dur ou mieux un code traduction présent dans un fichier lang.
* Partie 3: Le titre de l'onglet. Cela peut être un libellé en dur ou mieux un code traduction présent dans un fichier lang.
* Partie 4: Le nom du fichier .lang (sans l'extension .lang) qui contient la correspondance entre le code traduction et le libellé à afficher. Si ce com est précédé de @, Dolibarr cherche le fichier dansle répertoire lang propre au module, c'est à dire htdocs/mymodule/langs/code_CODE/mymodule.lang, sinon Dolibarr cherche le fichier traduction dans htdocs/langs/code_CODE/mymodyle.lang
* Partie 4: Le nom du fichier .lang (sans l'extension .lang) qui contient la correspondance entre le code traduction et le libellé à afficher. Si ce com est précédé de @, Dolibarr cherche le fichier dansle répertoire lang propre au module, c'est à dire htdocs/monmodule/langs/code_CODE/monmodule.lang, sinon Dolibarr cherche le fichier traduction dans htdocs/langs/code_CODE/mymodyle.lang
* Partie 5: L'url de la page à afficher quand on clique sur l'onglet. La chaine __ID__ sera remplacée automatiquement par l'Id de l'entité concernée.
* Partie 5: L'url de la page à afficher quand on clique sur l'onglet. La chaine __ID__ sera remplacée automatiquement par l'Id de l'entité concernée.


Line 308: Line 308:
Pour cela, il vous faut définir dans le fichier descripteur de module, le tableau this->menu qui déclare les menus.
Pour cela, il vous faut définir dans le fichier descripteur de module, le tableau this->menu qui déclare les menus.
Ce tableau contient toutes les entrées qui apparaitront dans les menus une fois le module activé.
Ce tableau contient toutes les entrées qui apparaitront dans les menus une fois le module activé.
Le fichier de descripteur de module exemple '''modMyModule.class.php''' possède un exemple de déclaration de menu haut ainsi que de ses entrées menu gauche associées.
Le fichier de descripteur de module exemple '''modMonModule.class.php''' possède un exemple de déclaration de menu haut ainsi que de ses entrées menu gauche associées.


Voici un exemple de déclaration d'entrées de menu dans le fichier descripteur:
Voici un exemple de déclaration d'entrées de menu dans le fichier descripteur:
Line 320: Line 320:
$this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu
$this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu
'type'=>'top', // This is a Top menu entry
'type'=>'top', // This is a Top menu entry
'titre'=>'MyModule top menu',
'titre'=>'MonModule top menu',
'mainmenu'=>'mymodule',
'mainmenu'=>'monmodule',
'leftmenu'=>'1', // Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
'leftmenu'=>'1', // Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
'url'=>'/mymodule/pagetop.php',
'url'=>'/monmodule/pagetop.php',
'langs'=>'mylangfile', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
'langs'=>'mylangfile', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
'position'=>100,
'position'=>100,
'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
'perms'=>'1', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
'target'=>'',
'target'=>'',
'user'=>2); // 0=Menu for internal users, 1=external users, 2=both
'user'=>2); // 0=Menu for internal users, 1=external users, 2=both
Line 335: Line 335:
$this->menu[$r]=array( 'fk_menu'=>'r=0', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
$this->menu[$r]=array( 'fk_menu'=>'r=0', // Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
'type'=>'left', // This is a Left menu entry
'type'=>'left', // This is a Left menu entry
'titre'=>'MyModule left menu 1',
'titre'=>'MonModule left menu 1',
'mainmenu'=>'mymodule',
'mainmenu'=>'monmodule',
'url'=>'/mymodule/pagelevel1.php',
'url'=>'/monmodule/pagelevel1.php',
'langs'=>'mylangfile', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
'langs'=>'mylangfile', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
'position'=>100,
'position'=>100,
'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled.
'enabled'=>'1', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
'perms'=>'1', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
'target'=>'',
'target'=>'',
'user'=>2); // 0=Menu for internal users,1=external users, 2=both
'user'=>2); // 0=Menu for internal users,1=external users, 2=both
8

edits