[Dolibarr-dev] Pas de test avant l'instanciation d'une classe de module
From:
Pierre Morin
Subject:
[Dolibarr-dev] Pas de test avant l'instanciation d'une classe de module incluse
Date:
Tue, 20 Apr 2010 16:03:32 +0200
Bonjour,
Je viens de constater qu'il y a un gros problème dans "htdocs/admin/modules.php". En effet, à la ligne 72, une classe est instanciée avant même avoir testé que l'inclusion de la ligne précédante avais bien fonctionnée (ou, tout du moins, que la classe à instancier était bien déclarée quelque part).
Voici le code incriminé :
+------------------------------------------------------------------------------------------------------------------+ if ($modName) { $file = $modName . ".class.php"; include_once(DOL_DOCUMENT_ROOT."/includes/modules/$file"); $objMod = new $modName($db);
+------------------------------------------------------------------------------------------------------------------+
Voici une mini-ébauche de ce qui pourrait régler ce problème :
+------------------------------------------------------------------------------------------------------------------+ if ($modName) { $file = $modName . ".class.php"; include_once(DOL_DOCUMENT_ROOT."/includes/modules/$file"); if(class_exists($modName)) $objMod = new $modName($db); else
+------------------------------------------------------------------------------------------------------------------+
Par contre, je ne sais pas trop quoi mettre après le "else"...
Et j'avoue que j'ai un peu peur de toucher à quelque chose d'aussi central que l'activation des modules Dolibarr donc je préfère vous faire part de ma découverte.