1,918
edits
No edit summary |
|||
| Line 5: | Line 5: | ||
* Ajouter vos propres entrées dans les menus | * Ajouter vos propres entrées dans les menus | ||
* Ajouter des écrans de saisie/consultation de nouvelle tables | * Ajouter des écrans de saisie/consultation de nouvelle tables | ||
* Ajouter ou | * Ajouter ou supprimer des onglets sur les pages de vues/édition des objets (facture, produit, commande, événement, ...) | ||
* Ajouter des exports prédéfinis pour la fonction export | * Ajouter des exports prédéfinis pour la fonction export | ||
* Ajouter de nouvelles boites pour la home page | * Ajouter de nouvelles boites pour la home page | ||
| Line 21: | Line 21: | ||
= [[File:Art.png]] Exemple de | = [[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/rdoursenaud/dolibarr-module-template GitHub Dolibarr Module Modèle] | Un bon modéle/squelette de module externe Dolibarr est disponible ici : [https://github.com/rdoursenaud/dolibarr-module-template GitHub Dolibarr Module Modèle] | ||
| Line 44: | Line 44: | ||
=== Tester votre descripteur === | === Tester votre descripteur === | ||
Lancer Dolibarr et aller sur la page '''Configuration->module''', vous devez voir | Lancer Dolibarr et aller sur la page '''Configuration->module''', vous devez voir apparaître une nouvelle ligne avec votre nouveau module et la possibilité de l'activer ou non (parcourez tous les onglets de chaque catégories de modules jusqu'à le retrouver). | ||
C'est la valeur de $this->special qui détermine dans quel onglet se trouve votre module. | C'est la valeur de $this->special qui détermine dans quel onglet se trouve votre module. | ||
| Line 75: | Line 75: | ||
<source lang="sql"> | <source lang="sql"> | ||
delete from llx_const where name='MONMODULE_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 ('MONMODULE_IT_WORKS','1','chaine','A constant | insert into llx_const (name, value, type, note, visible, entity) values ('MONMODULE_IT_WORKS','1','chaine','A constant for my module',1,'__ENTITY__'); | ||
</source> | </source> | ||
| Line 168: | Line 168: | ||
$head[$h] // Élément décrivant un onglet. Il y aura autant de $h que d'onglets à afficher | $head[$h] // Élément décrivant un onglet. Il y aura autant de $h que d'onglets à afficher | ||
$head[$h][0] // Url de la page affichée quand on clique sur l'onglet | $head[$h][0] // Url de la page affichée quand on clique sur l'onglet | ||
$head[$h][1] // Titre de | $head[$h][1] // Titre de l’onglet | ||
$head[$h][2] // Code de l'onglet, à utiliser pour choisir quel onglet sera 'actif' (voir paragraphe suivant) | $head[$h][2] // Code de l'onglet, à utiliser pour choisir quel onglet sera 'actif' (voir paragraphe suivant) | ||
</source> | </source> | ||
| Line 240: | Line 240: | ||
=== Remplacer les parties d'écrans templatés (version 3.3+) === | === Remplacer les parties d'écrans templatés (version 3.3+) === | ||
Certaines portion d'écran de Dolibarr sont isolés dans des fichiers templates. | 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 | Vous pouvez développer un module pour remplacer un ou plusieurs de ces templates par les vôtres. | ||
{{ToComplete}} | {{ToComplete}} | ||
| Line 288: | Line 288: | ||
* class="'''liste_titre'''" sur les balises ''tr'' et ''td'' pour une ligne de titre de tableau. | * class="'''liste_titre'''" sur les balises ''tr'' et ''td'' pour une ligne de titre de tableau. | ||
* class="'''pair'''" ou class="'''impair'''" sur les balises ''tr'' et ''td'' des lignes de | * class="'''pair'''" ou class="'''impair'''" sur les balises ''tr'' et ''td'' des lignes de données de tableau. | ||
* class="'''flat'''" sur tous les champs de saisie (''input, select, textarea''...). | * class="'''flat'''" sur tous les champs de saisie (''input, select, textarea''...). | ||
* class="'''button'''" sur les objets de type ''input type="submit"''. | * class="'''button'''" sur les objets de type ''input type="submit"''. | ||
| Line 312: | Line 312: | ||
'''Quand''': Si votre module offre plusieurs options paramétrables. | '''Quand''': Si votre module offre plusieurs options paramétrables. | ||
=== | === Créer votre page d'édition de configuration === | ||
Si votre module offre plusieurs options paramétrables, il est nécessaire de créer une page PHP pour éditer les options (qui sont stockées dans la [[Table llx_const|table '''llx_const''']]). | Si votre module offre plusieurs options paramétrables, il est nécessaire de créer une page PHP pour éditer les options (qui sont stockées dans la [[Table llx_const|table '''llx_const''']]). | ||
Créer une page PHP nommée '''monmodule_setupapage.php''' qui affiche les options possibles et les met à jour. | Créer une page PHP nommée '''monmodule_setupapage.php''' qui affiche les options possibles et les met à jour. | ||
| Line 323: | Line 323: | ||
=== Tester votre page === | === Tester votre page === | ||
Allez sur la page '''Configuration->module''', vous devez voir | Allez sur la page '''Configuration->module''', vous devez voir apparaître une icône qui permet d'accéder à la page de configuration et vous devez être capable de modifier ces options et les voir conservées en base. | ||
== Définir vos entrées de menu (optionnel) == | == Définir vos entrées de menu (optionnel) == | ||
| Line 330: | Line 330: | ||
=== Définissez vos entrées menus === | === Définissez vos entrées menus === | ||
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 | Ce tableau contient toutes les entrées qui apparaîtront dans les menus une fois le module activé. | ||
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. | 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. | ||
| Line 374: | Line 374: | ||
=== Tester vos entrées menus === | === Tester vos entrées menus === | ||
Désactiver et réactiver votre module sous Dolibarr, les entrées menus doivent alors | Désactiver et réactiver votre module sous Dolibarr, les entrées menus doivent alors apparaître (si la condition dans 'enabled' est vraie). | ||
== Définir vos propres permissions (optionnel) == | == Définir vos propres permissions (optionnel) == | ||
'''Quand''': Si vous voulez ajouter de nouvelles permissions. | '''Quand''': Si vous voulez ajouter de nouvelles permissions. | ||
La définition des permissions que | La définition des permissions que gérera votre module se fait dans le fichier descripteur créé dans la première étape. | ||
Modifier la ligne | Modifier la ligne | ||
<source lang="php"> | <source lang="php"> | ||
| Line 400: | Line 400: | ||
Dans $this->rights[$r][3], mettre 1 si cette permission est attribué d'office par défaut quand un utilisateur est créé. | Dans $this->rights[$r][3], mettre 1 si cette permission est attribué d'office par défaut quand un utilisateur est créé. | ||
Dans $this->rights[$r][1], mettre un libellé par défaut (il sera affiché si aucune traduction n'est trouvé pour votre permission dans le fichier '''admin.lang'''). | Dans $this->rights[$r][1], mettre un libellé par défaut (il sera affiché si aucune traduction n'est trouvé pour votre permission dans le fichier '''admin.lang'''). | ||
Dans $this->rights[$r][4] et $this->rights[$r][5], mettre une | Dans $this->rights[$r][4] et $this->rights[$r][5], mettre une chaîne action et sousaction sans espaces. Vous pourrez alors tester dans le code PHP si un utilisateurs a bien les droits par la séquence suivante: | ||
<source lang="php"> | <source lang="php"> | ||
| Line 429: | Line 429: | ||
Aller dans le menu '''Accueil - Configuration - Boite'''. | Aller dans le menu '''Accueil - Configuration - Boite'''. | ||
Vos box doivent | Vos box doivent apparaître dans la liste des box activables. Activer les puis aller sur la page d'accueil et vérifier qu'elles s'affichent correctement. | ||
== Définir vos propres exports (optionnel) == | == Définir vos propres exports (optionnel) == | ||
| Line 484: | Line 484: | ||
== Insérer votre code aux emplacement hooks de Dolibarr (optionnel) == | == Insérer votre code aux emplacement hooks de Dolibarr (optionnel) == | ||
'''Quand''': Quand vous voulez modifier ou ajouter du code autrement que lors d'un | '''Quand''': Quand vous voulez modifier ou ajouter du code autrement que lors d'un événement métier (voir le chapitre précédent pour cela). | ||
Voir la page [[Système de Hooks]]. | Voir la page [[Système de Hooks]]. | ||
| Line 536: | Line 536: | ||
= [[File:Art.png]] Validation/activation du module externe sur Dolistore = | = [[File:Art.png]] Validation/activation du module externe sur Dolistore = | ||
Voir [[Module_Dolistore_Validation_Regles| | Voir [[Module_Dolistore_Validation_Regles|Règles de Validation]] | ||