Jump to content

Erreur Notice Module::getModulesOnDisk()PrestaShop 1.2


Recommended Posts

Bonjour,

En voulant vérifier le fonctionnement de mon module avec la dernière version sur le SVN, j'ai une erreur lors de l'appel de la fonction Module::getModulesOnDisk();

Notice: Trying to get property of non-object in ...\classes\Module.php(318) : eval()'d code on line 25



Erreur que je n'ai pas avec la version 1.1.

pour info voici le bout de code tout simple qui fait cette erreur :

<?php
   include(dirname(__FILE__).'/config/config.inc.php');
   $modules = Module::getModulesOnDisk();
?>



J'ai effacé le dossier et remis une version toute propre du SVN ça fait la même erreur Notice:

Après analyse le problème viens du module newsletter

L'erreur viens de la ligne

// Getting data...
$id_lang = intval($cookie->id_lang);
$_countries = Country::getCountries($id_lang);



Ce qui semble logique car en appelant directement la page sans être dans une session PrestaShop le $cookie ne peut exister non et donc le $id_lang vaut 0.

Je peut rajouter un @ devant l'appel de Module::getModulesOnDisk() , mais ce n'est pas très propre finalement.

Voila.

Link to comment
Share on other sites

salut ^^

je dirais, change

$file = trim(file_get_contents(_PS_MODULE_DIR_.'/'.$module.'/'.$module.'.php'));
if (substr($file, 0, 5) == '<?php')
$file = substr($file, 5);
if (substr($file, -2) == '?>')
$file = substr($file, 0, -2);
if (class_exists($module, false) OR eval($file) !== false)
$moduleList[] = new $module;
else
$errors[] = $module;


et remplace par

require_once (_PS_MODULE_DIR_.'/'.$module.'/'.$module.'.php');
if ( $iObject=new $module)
$moduleList[] = $iObject;
else
$errors[] = $module;

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...