Bonjour tout le monde,
Novice dans le développement de module, je me lance à peine en m’aidant du générateur de module de dolibarr (9.0.2).
Tout fonctionne nickel, ajout de module, ajout d’objets, paramétrages de menus … etc. J’ajoute ensuite de extrafields, nickel aussi, en modifiant le descripteur de module, ensuite je rencontre deux problèmes :
- Comment paramétrer le champs param de l’extrafield? Celui qui dit d’où chercher la donnée.
Moi dans mon cas, mon extrafield doit être un Checkbox (multiple) qui source d’une base de donnée.
- Deuxième problème, une fois que j’ai paramétré un tant soit peu le champs, quand je crée l’objet cela ne sauvegarde rien dans l’extrafield. Tout l’objet est sauvegardé dans la base, mais rien n’est sauvegardé dans la table extrafield.
Ou sinon, si je peux éviter l’extrafield, comment ajouter une checkbox directement dans l’objet?
Il s’agit d’un nouveau module créé à l’aide du générateur de module.
Ensuite, il a été ajouté cet extrafield dans le descripteur du module, puis activé le module.
Ensuite, je vérifie les tables du module (de l’objet) et le nouvel attribut a bien été ajouté.
Mais quand je teste le formulaire tout s’enregistre sauf l’extrafield
Qu’est ce que je dois copier ici?
Ou sinon les explications, je vais reprendre :
Il s’agit de Dolibarr 9.0.2, voici les étapes suivies :
- Activer le module « Générateur de module », on choisira le nom « Concept » pour le module.
- On crée un objet qui s’appellera Store
- On va dans le descripteur de module pour ajouter un Extrafield : concept/core/modules/modConcept.class.php
- À la ligne 350, on ajoute la ligne d’extrafield (on va appeler le champs « Catégorie »):
$result1=$extrafields->addExtraField(‹ category ›, « Catégorie », ‹ text ›, 1, 3, ‹ concept_store ›, 0, 1, ‹ ›, ‹ ›, 1, ‹ ›, 1, 0, ‹ ›, ‹ ›, ‹ concept@concept ›, 1);
Jusque là, tout va bien.
Ensuite …
- On active le module pour le tester.
- On va à son onglet qui s’affiche correctement.
- On va au menu de gauche qui s’affiche correctement.
- On clique sur ajouter « Nouveau store » et le formulaire s’affiche correctement, et l’extrafield est bien présent dans le formulaire.
- On remplit le formulaire du Store pour ajouter un store.
- Le formulaire se valide correctement, théoriquement tout a fonctionné.
Sauf qu’en vérifiant la base de donnée, la table llx_concept_store est bien alimentée, mais la table llx_concept_store_extrafields ne contient aucun enregistrement.
Je n’y comprends rien encore une fois,
j’ai refait la procédure de zéro :
- Créer un nouveau module.
- Créer un nouvel objet.
- Ajouter la tab Extrafield dans store.class.php
- Ajouter la page Extrafield dans le dossier admin.
- Ajouter un champs Extrafield.
- Essayer d’ajouter un enregistrement.
Pareil !!! Tout s’enregistre sauf l’extra.
Please
Merci