En effet, je suis dans le cas où la classe est mal nommée.
Mais de toutes manières, il ne faut pas tenir compte de mes codes mis
dans mon e-mail car ce n'était pas la bonne version.
Au final, le problème est le même (pas de test avant instanciation) mais
le code à prendre en compte est le suivant (à partir de la ligne 80) :
+-----------------------------------------------------------------------------------------------------------------------------------+
if ($modName)
{
$file = $modName . ".class.php";
foreach ($conf->file->dol_document_root as $dol_document_root)
{
$fou...@include_once($dol_document_root."/includes/modules/".$file);
if ($found) break;
}
$objMod = new $modName($db);
+-----------------------------------------------------------------------------------------------------------------------------------+
Et un code qui-irait-bien pour régler ce problème :
+-----------------------------------------------------------------------------------------------------------------------------------+
if ($modName)
{
$file = $modName . ".class.php";
foreach ($conf->file->dol_document_root as $dol_document_root)
{
$fou...@include_once($dol_document_root."/includes/modules/".$file);
if ($found) break;
}
if(class_exists($modName)) $objMod = new $modName($db);
else
...
+-----------------------------------------------------------------------------------------------------------------------------------+
Bien cordialement,
--
Pierre Morin
[email protected]
Le mardi 20 avril 2010 à 16:33 +0200, Régis Houssin a écrit :
> Il y a une vérification de l’existence du fichier juste avant, c’est
> justement le nom du fichier qui détermine le nom de la classe:
> modMymodule.class.php = class modMymodule
>
> Donc si il y erreur c’est que la classe a été mal nommée
>
>
>
>
> Le 20/04/10 16:03, « Pierre Morin » <[email protected]> a
> écrit :
>
>
> 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.
>
> Bien cordialement,
>
>
>
> --
> Régis Houssin
> ------------------------------------------------------
> Cap-Networks
> 30, Quai de Verdun
> 71700 Tournus
> Tél. +33 6 33 02 07 97
> Web: http://www.cap-networks.com
> Email: [email protected]
>
> Développeur Dolibarr : [email protected]
> Portail francophone : www.dolibarr.fr
> Offres SaaS de Dolibarr : www.dolibox.fr
> Development platform : www.dolibarr.pro
> ------------------------------------------------------
>
> _______________________________________________
> Dolibarr-dev mailing list
> [email protected]
> http://lists.nongnu.org/mailman/listinfo/dolibarr-dev
_______________________________________________
Dolibarr-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev