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

Répondre à