Bonjour Dolibarrien(ne),
Je suis en train de créer un nouveau module avec le module builder (testmar4), tout se passe bien à la création. Mais maintenant je n’arrive pas à le modifier.
Lorsque je crée un nouvel objet (animal) il n’apparaît pas dans le menu de gauche même si :
- la partie menu du fichier de description est mise à jour ainsi que l’interface du menu :
// Main menu entries to add
$this->menu = array();
$r = 0;
// Add here entries to declare new menus
/* BEGIN MODULEBUILDER TOPMENU */
$this->menu[$r++] = array(
'fk_menu'=>'', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
'type'=>'top', // This is a Top menu entry
'titre'=>'ModuleTestmar4Name',
'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'),
'mainmenu'=>'testmar4',
'leftmenu'=>'',
'url'=>'/testmar4/testmar4index.php',
'langs'=>'testmar4@testmar4', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
'position'=>1000 + $r,
'enabled'=>'isModEnabled("testmar4")', // Define condition to show or hide menu entry. Use 'isModEnabled("testmar4")' if entry must be visible if module is enabled.
'perms'=>'1', // Use 'perms'=>'$user->hasRight("testmar4", "animal", "read")' if you want your menu with a permission rules
'target'=>'',
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
);
/* END MODULEBUILDER TOPMENU*/
/* BEGIN MODULEBUILDER LEFTMENU MYOBJECT*/
/*LEFTMENU ANIMAL*/
$this->menu[$r++]=array(
'fk_menu'=>'fk_mainmenu=testmar4',
'type'=>'left',
'titre'=>'Animal',
'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth valignmiddle"'),
'mainmenu'=>'testmar4',
'leftmenu'=>'animal',
'url'=>'/testmar4/animal_list.php',
'langs'=>'testmar4@testmar4',
'position'=>1000+$r,
'enabled'=>'$conf->testmodule->enabled',
'perms'=>'1',
'target'=>'',
'user'=>2,
);
$this->menu[$r++]=array(
'fk_menu'=>'fk_mainmenu=testmar4,fk_leftmenu=animal',
'type'=>'left',
'titre'=>'List Animal',
'mainmenu'=>'testmar4',
'leftmenu'=>'testmar4_animal_list',
'url'=>'/testmar4/animal_list.php',
'langs'=>'testmar4@testmar4',
'position'=>1000+$r,
'enabled'=>'$conf->testmar4->enabled',
'perms'=>'1',
'target'=>'',
'user'=>2,
);
$this->menu[$r++]=array(
'fk_menu'=>'fk_mainmenu=testmar4,fk_leftmenu=animal',
'type'=>'left',
'titre'=>'New Animal',
'mainmenu'=>'testmar4',
'leftmenu'=>'testmar4_animal_new',
'url'=>'/testmar4/animal_card.php?action=create',
'langs'=>'testmar4@testmar4',
'position'=>1000+$r,
'enabled'=>'$conf->testmar4->enabled',
'perms'=>'1',
'target'=>'',
'user'=>2
);
/*END LEFTMENU ANIMAL*/
/* END MODULEBUILDER LEFTMENU MYOBJECT */
- L’interface module builder montre bien que l’objet a été créé.
Cependant, aucun menu de gauche ne s’affiche
Pourtant je peux accéder à la création d’animaux ou à la liste d’animaux si je modifie l’URL manuellement dans le navigateur.
J’ai aussi essayé d’ajouter des réglages dans /custom/testmar4/admin/, je peux voir que j’ai maintenant deux réglages mais le nouveau n’est pas accessible :
« Not Found L’URL demandée n’a pas été trouvée sur ce serveur.
De plus, une erreur 404 Not Found a été rencontrée en essayant d’utiliser un ErrorDocument pour traiter la requête ».
(J’ai suivi le tutoriel Développement module - Dolibarr ERP CRM Wiki)
Et j’ai remarqué que l’URL n’est pas la bonne : /admin/testmar4_setupapage.php@testmar4 alors qu’elle devrait être custom/testmar4/admin/testmar4_setupapage.php@testmar4.
C’est pourquoi je pense que j’ai un problème de chemin d’accès mais je ne sais pas pourquoi.
Le fichier conf.php me semble correct :
<?php
//
// File generated by Dolibarr installer 17.0.0 on Mar 20, 2023
//
// Take a look at conf.php.example file for an example of conf.php file
// and explanations for all possibles parameters.
//
$dolibarr_main_url_root='https://X.fr';
$dolibarr_main_document_root='/chemin X/X';
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='/chemin X/X/custom';
$dolibarr_main_data_root='/chemin dataX/dataX';
$dolibarr_main_db_host='localhost';
Je travaille sur une instance de test et le module Infraspackplus qui était présent sur l’instance de prod fonctionne bien lui !
Si vous avez une idée, n’hésitez pas à m’aider !
Je vous remercie !
Dolibarr version 18.0.0
Ubuntu 18.04.06