Jump to content

Impossible d'accéder aux modules suite à une mis à jour!


Recommended Posts

Bonjour à tous,

 

Suite à un essai de mis à jour des modules de ma boutique 1.6.0.9, je ne peux plus accéder aux modules de ma boutique, j'ai message suivant:

Fatal error in module Helper: call to a member function create Template () on a non-object.

Je ne parviens pas à résoudre ce porblème d'accés aux modules.

 

Sous firebug j'ai le message suivant:

NetworkError: 500 Internal server error

Http://maboutique.com/admin0/index.php?controller=adminmodules&token=07ecb .........

Quelqu'un aurait une solution? quelque chose à essayer pour fixer le problème?

Je ne connais pas bien le monde du FTP (je suis chez OVH).

 

Merci d'avance pour votre précieuse aide,

 

Cdlt

 

Med

 

Link to comment
Share on other sites

Bonjour Elolia,

 

Merci beaucoup pour ton aide :D

 

Lorsque je lance l'affichage des erreur j'ai le message suivant:

"NetworkError: 500 Internal Server Error - http://maboutique.com/admin0/index.php?controller=AdminModules&token=07ecb914b8fe7e46a15848c5eb938721

 

Comment savoir quel module supprimer et comment savoir s'il est critique pour ma boutique?

Ai je un autre moyen avec firebug de détecter le module defectueux? :wacko:

 

Merciiiiii

Link to comment
Share on other sites

Non, ce n'est pas un message d'erreur ça...

Il faut activer l'affichage des erreurs pour en savoir plus, en modifiant cette ligne au début du fichier config/defines.inc.php :
 
define('_PS_MODE_DEV_', false);
 
par
 
define('_PS_MODE_DEV_', true);
 
Et donnez-nous l'erreur après avoir rafraichi la page
Link to comment
Share on other sites

Dans le FTP config/defines.inc.php je n'ai pas le message PS_MODE_DEV_', false, est ce normal? copie ci aprés

<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

require_once(dirname(__FILE__).'/defines.inc.php');
$start_time = microtime(true);

/* SSL configuration */
define('_PS_SSL_PORT_', 443);

/* Improve PHP configuration to prevent issues */
ini_set('upload_max_filesize', '100M');
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);

/* correct Apache charset (except if it's too late */
if (!headers_sent())
    header('Content-Type: text/html; charset=utf-8');

/* No settings file? goto installer... */
if (!file_exists(_PS_ROOT_DIR_.'/config/settings.inc.php'))
{
    $dir = ((substr($_SERVER['REQUEST_URI'], -1) == '/' || is_dir($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : dirname($_SERVER['REQUEST_URI']).'/');
    if (file_exists(dirname(__FILE__).'/../install'))
        header('Location: install/');
    elseif (file_exists(dirname(__FILE__).'/../install-dev'))
        header('Location: install-dev/');
    else
        die('Error: "install" directory is missing');
    exit;
}
//include settings file only if we are not in multi-tenancy mode
require_once(_PS_ROOT_DIR_.'/config/settings.inc.php');
require_once(_PS_CONFIG_DIR_.'autoload.php');

if (_PS_DEBUG_PROFILING_)
{
    include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
    include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
    include_once(_PS_TOOL_DIR_.'profiling/Hook.php');
    include_once(_PS_TOOL_DIR_.'profiling/Db.php');
    include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}

if (Tools::isPHPCLI() && isset($argc) && isset($argv))
    Tools::argvToGET($argc, $argv);

/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI']))
{
    if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME']))
        $_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
    if (isset($_SERVER['SCRIPT_NAME']))
    {
        if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING']))
            $_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
        else
        {
            $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
            if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
                $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
        }
    }
}

/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
    $_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
    
$context = Context::getContext();

/* Initialize the current Shop */
try
{
    $context->shop = Shop::initialize();
    $context->theme = new Theme((int)$context->shop->id_theme);
    if ((Tools::isEmpty($theme_name = $context->shop->getTheme()) || !Validate::isLoadedObject($context->theme)) && !defined('_PS_ADMIN_DIR_'))
        throw new PrestaShopException(Tools::displayError('Current theme unselected. Please check your theme configuration.'));
}
catch (PrestaShopException $e)
{
    $e->displayMessage();
}
define('_THEME_NAME_', $theme_name);
define('__PS_BASE_URI__', $context->shop->getBaseURI());

/* Include all defines related to base uri and theme name */
require_once(dirname(__FILE__).'/defines_uri.inc.php');

global $_MODULES;
$_MODULES = array();

/* Load configuration */
Configuration::loadConfiguration();

if (Configuration::get('PS_USE_HTMLPURIFIER'))
    require_once (_PS_TOOL_DIR_.'htmlpurifier/HTMLPurifier.standalone.php');

/* Load all languages */
Language::loadLanguages();

/* Loading default country */
$defaultCountry = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $defaultCountry;

/* It is not safe to rely on the system's timezone settings, and this would generate a PHP Strict Standards notice. */
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));

/* Set locales */
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY'));
/* Please do not use LC_ALL here http://www.php.net/manual/fr/function.setlocale.php#25041 */
setlocale(LC_COLLATE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_CTYPE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_TIME, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_NUMERIC, 'en_US.UTF-8', 'en_US.utf8');

/* Instantiate cookie */
$cookie_lifetime = (int)(defined('_PS_ADMIN_DIR_') ? Configuration::get('PS_COOKIE_LIFETIME_BO') : Configuration::get('PS_COOKIE_LIFETIME_FO'));
if ($cookie_lifetime > 0)
    $cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);

if (defined('_PS_ADMIN_DIR_'))
    $cookie = new Cookie('psAdmin', '', $cookie_lifetime);
else
{
    if ($context->shop->getGroup()->share_order)
        $cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart());
    else
    {
        $domains = null;
        if ($context->shop->domain != $context->shop->domain_ssl)
          $domains = array($context->shop->domain_ssl, $context->shop->domain);
        
        $cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains);
    }
}

$context->cookie = $cookie;

/* Create employee if in BO, customer else */
if (defined('_PS_ADMIN_DIR_'))
{
    $employee = new Employee($cookie->id_employee);
    $context->employee = $employee;

    /* Auth on shops are recached after employee assignation */
    if ($employee->id_profile != _PS_ADMIN_PROFILE_)
        Shop::cacheShops(true);

    $cookie->id_lang = (int)$employee->id_lang;
}

/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
    $language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
    $language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;

if (!defined('_PS_ADMIN_DIR_'))
{
    if (isset($cookie->id_customer) && (int)$cookie->id_customer)
    {
        $customer = new Customer($cookie->id_customer);
        if (!Validate::isLoadedObject($customer))
            $context->cookie->logout();
        else
        {
            $customer->logged = true;
            if ($customer->id_lang != $context->language->id)
            {
                $customer->id_lang = $context->language->id;
                $customer->update();
            }
        }
    }

    if (!isset($customer) || !Validate::isLoadedObject($customer))
    {
        $customer = new Customer();
        
        // Change the default group
        if (Group::isFeatureActive())
            $customer->id_default_group = (int)Configuration::get('PS_UNIDENTIFIED_GROUP');
    }
    $customer->id_guest = $cookie->id_guest;
    $context->customer = $customer;
}

/* Link should also be initialized in the context here for retrocompatibility */

$context->link = new Link($https_link, $https_link);

/**
 * @deprecated : these defines are going to be deleted on 1.6 version of Prestashop
 * USE : Configuration::get() method in order to getting the id of order status
 */
define('_PS_OS_CHEQUE_',      Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_',     Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_',    Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_',   Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_',    Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_',      Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_',       Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_',  Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_BANKWIRE_',    Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_',      Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));

/* Get smarty */
require_once(dirname(__FILE__).'/smarty.config.inc.php');
$context->smarty = $smarty;
 

Link to comment
Share on other sites

Oups, vraiment désolé :unsure:^_^

 

Merci pour le rappel... j'ai fais la modi et j'ai maintenant le message suivant:

Fatal error: Call to a member function createTemplate() on a non-object in /home/placebaloq/www/classes/helper/Helper.php on line 103
[PrestaShop] Fatal error in module Helper:
Call to a member function createTemplate() on a non-object

 

Dans le FTP la ligne 103 est:

return $this->context->smarty->createTemplate($this->base_folder.$tpl_name, $this->context->smarty);

 

 

Merci beaucoup pour ton aide :)

Link to comment
Share on other sites

Bon apparemment vous avez un module qui n'est pas compatible avec la 1.6

 

Dans les paramètres performances, cochez "désactiver les modules non-natifs" et essayez de rafraichir la page des modules

Link to comment
Share on other sites

Après essai de désactiver les modules natifs , vidé le cache du presta et du navigateur, le problème est toujours là: :(

 

Fatal error: Call to a member function createTemplate() on a non-object in /home/placebaloq/www/classes/helper/Helper.php on line 103
[PrestaShop] Fatal error in module Helper:
Call to a member function createTemplate() on a non-object

 

Que puis je tester maintenant pour résoudre le problème?

 

Merci à toi pour ton aide précieuse c'est appréciable de ne pas ce sentir seul face à cela, :lol:

Link to comment
Share on other sites

Il n'y a pas de solution simple.

Sur votre ftp, renommez tous vos répertoires modules en nom_du_module_old

rafraichissez la pages des modules

 

Si le problème est toujours là, le souci vient du core, ce qui serait surprenant...

Ensuite, enlevez le _old à chaque module et rafraîchissez la page à chaque fois

Tant qu'elle n'affiche pas d'erreur on passe au suivant

 

Cela permettra d'isoler le module defaillant

Link to comment
Share on other sites

Bonjour ,

 

Merci pour le retour je vais essayer cela.

 

HELP!! je ne sais pas comment mais maintenant sur ma boutique j'ai tout un tas d'inscrption qui s'affiche du genre:

Notice: Undefined index: homeFeaturedProducts in /home/placebaloq/www/cache/smarty/compile/e5/fe/29/e5fe29b9e716d746597ab65e4e032656ab094962.file.tmfeatureproducts.tpl.cache.php on line 48

 

J'ai remis le define.inc.php en false mais cela ne disparait pas! :wacko:

 

Comment enlever ces messages?

 

Merci d'avance :)

Link to comment
Share on other sites

C'est bon, j'ai fini par résoudre le problème simplement en réactivant tout les modules non natif.

 

Pour le recherche du module avec defaut: dans le repertoire www/modules il y a 106 repertoires, donc 106 modules à mettre en old?

 

Merci à toi :)

Link to comment
Share on other sites

je ne sais pas si sa peux vous aider si je vous donne les lignes autour de celle décrite dans l'erreur? est ce que cela peux guider sur quel pourrait être le module créant le défaut?

 

  1. public function createTemplate($tpl_name)
  2. {
  3. if ($this->override_folder)
  4. {
  5. if ($this->context->controller instanceof ModuleAdminController)
  6. $override_tpl_path = $this->context->controller->getTemplatePath().$this->override_folder.$this->base_folder.$tpl_name;
  7. else if ($this->module)
  8. $override_tpl_path = _PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/_configure/'.$this->override_folder.$this->base_folder.$tpl_name;
  9. else
  10. {
  11. if (file_exists($this->context->smarty->getTemplateDir(1).$this->override_folder.$this->base_folder.$tpl_name))
  12. $override_tpl_path = $this->context->smarty->getTemplateDir(1).$this->override_folder.$this->base_folder.$tpl_name;
  13. else if (file_exists($this->context->smarty->getTemplateDir(0).'controllers'.DIRECTORY_SEPARATOR.$this->override_folder.$this->base_folder.$tpl_name))
  14. $override_tpl_path = $this->context->smarty->getTemplateDir(0).'controllers'.DIRECTORY_SEPARATOR.$this->override_folder.$this->base_folder.$tpl_name;
  15.  
  16. }
  17. }
  18. else if ($this->module)
  19. $override_tpl_path = _PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/_configure/'.$this->base_folder.$tpl_name;
  20.  
  21. if (isset($override_tpl_path) && file_exists($override_tpl_path))
  22. return $this->context->smarty->createTemplate($override_tpl_path, $this->context->smarty);
  23. else
  24. return $this->context->smarty->createTemplate($this->base_folder.$tpl_name, $this->context->smarty);
  25. }
  26.  
  27. /**
  28. * default behaviour for helper is to return a tpl fetched
  29. *
  30. * @return string
  31. */
  32. public function generate()
  33. {
  34. $this->tpl->assign($this->tpl_vars);
  35. return $this->tpl->fetch();
  36. }
  37.  
  38. /**
  39. * @deprecated 1.5.0
  40. */
  41. public static function renderAdminCategorieTree($translations,
  42. $selected_cat = array(),
  43. $input_name = 'categoryBox',
  44. $use_radio = false,
  45. $use_search = false,
  46. $disabled_categories = array(),
  47. $use_in_popup = false)
  48. {
  49. Tools::displayAsDeprecated();
  50.  
  51. $helper = new Helper();
  52. if (isset($translations['Root']))
  53. $root = $translations['Root'];
  54. else if (isset($translations['Home']))
  55. $root = array('name' => $translations['Home'], 'id_category' => 1);
  56. else
  57. throw new PrestaShopException('Missing root category parameter.');
  58.  
  59. return $helper->renderCategoryTree($root, $selected_cat, $input_name, $use_radio, $use_search, $disabled_categories, $use_in_popup);
  60. }
Link to comment
Share on other sites

C'est bon, j'ai fini par résoudre le problème simplement en réactivant tout les modules non natif.

 

Pour le recherche du module avec defaut: dans le repertoire www/modules il y a 106 repertoires, donc 106 modules à mettre en old?

 

Merci à toi :)

Oui,

 

par contre l'erreur précedente était normale vu que le cache est activé.

Désactivez-le le temps de vos essais et forcez la compilation

Link to comment
Share on other sites

Hi Eolia,

 

Ta solution m'a permis d'identifier enfin le module défectueux!! merci beaucoup pour ton analyse!!

Il s'agissait du module shoppingflux explor!!

 

Encore merci à toi ! :D  mon problème est résolu!

Link to comment
Share on other sites

  • 5 months later...

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...