Problème chemin / url avec module builder

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 :

  1. 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 */
  1. 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 ».

Capture du 2023-11-29 12-45-48

(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 ! :pray:

Dolibarr version 18.0.0
Ubuntu 18.04.06

Nouvel update, ma création et modification de module se passe sans soucis sur mon instance de prod. Ce qui veut dire que mon problème est certainement dû à la dupplication effectuée pour générer l’instance de test.
Maintenant j’ai une piste mais je ne sais toujours pas comment régler le problème…

Bonjour !Avez vous trouvé comment faire pour que vos liens URL soit reconnu? ??? Ca m’aiderait beaucoup :slight_smile: car j’ai le même soucis que vous, et je galère dessus. J’ai trouvé comment afficher le menu de gauche après un long moment…
Sur ses 2 items du menu du gauche, j’ai crée un lien url mais en cliquant sur l’item, une page s’ouvre avec NOT FOUND, The requested URL was not found on this server.

        $this->menu[$r++]=array(
            'fk_menu'=>'fk_mainmenu=test,fk_leftmenu=tkt',
            'type'=>'left',
            'titre'=>'My Ticket',
            'mainmenu'=>'test',
            'leftmenu'=>'test_tkt_my',
            'url'=>'/test/tkt_my.php?action=create',
            'langs'=>'test@test',
            'position'=>1000+$r,
            'enabled'=>'$conf->test->enabled',
            'perms'=>'1',
            'target'=>'',
            'user'=>2
		);
		$this->menu[$r++]=array(
            'fk_menu'=>'fk_mainmenu=test,fk_leftmenu=tkt',
            'type'=>'left',
            'titre'=>'Statistics',
            'mainmenu'=>'test',
            'leftmenu'=>'test_tkt_statistics',
            'url'=>'/test/tkt_statistics.php?action=create',
            'langs'=>'test@test',
            'position'=>1000+$r,
            'enabled'=>'$conf->test->enabled',
            'perms'=>'1',
            'target'=>'',
            'user'=>2
		);

Bonjour,

J’ai résolu mon problème en remplaçant le dossier ModuleBuilder de mon instance de test par celui de mon instance de prod (à l’aide de FileZilla). Car je me suis aperçue que tout fonctionnait parfaitement sur mon instance de prod et que les deux instances n’avaient pas la même version.

Vous pouvez essayer d’utiliser une autre version de module builder, j’espère que cela fonctionnera pour vous !

Bonjour,

Peut-être qu’il y avait un problème d’intégrité des données.
À l’avenir, tu peux tester en allant dans :
Outils d’administrations → Infos Dolibarr → Vérification de l’intégrité des données

Un fichier avait peut-être sauté.
Bonne journée !