Erreur 500 suite installation



  • J'ai renommé le fichier hook.php et j'ai un petit plus.
    La page admin a uniquement le bandeau du haut de visible et une page blanche.
    Avec les erreurs suivantes

    Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /////sandbox.tout-le-niva.com/cache/smarty/compile/fb/5d/7e/fb5d7e0bc3cda93822e06fc1bb7acfb4c0d58e12_0.file.header.tpl.php:405 Stack trace: #0 /////sandbox.tout-le-niva.com/tools/smarty/sysplugins/smarty_template_resource_base.php(123): content_6509b1642417a1_36228521() #1 /////sandbox.tout-le-niva.com/tools/smarty/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode() #2 /////sandbox.tout-le-niva.com/tools/smarty/sysplugins/smarty_internal_template.php(218): Smarty_Template_Compiled->render() #3 /////sandbox.tout-le-niva.com/tools/smarty/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render() #4 /////sandbox.tout-le-niva.com/tools/smarty/sysplugins/smarty_internal_templatebase.php(122): Smarty_Internal_TemplateBase->_execute() #5 /////sandbox.tout-le-niva.com/classes/controller/AdminController.php(2180): Smarty_Internal_TemplateBase->fetch() #6 /////sandbox.tout-le-niva.com/tools/profiling/Controller.php(719): AdminControllerCore->display() #7 /////sandbox.tout-le-niva.com/tools/profiling/Controller.php(245): Controller->displayProfiling() #8 /////sandbox.tout-le-niva.com/classes/Dispatcher.php(405): Controller->run() #9 /////sandbox.tout-le-niva.com/admin111/index.php(79): DispatcherCore->dispatch() #10 {main} thrown in /////sandbox.tout-le-niva.com/cache/smarty/compile/fb/5d/7e/fb5d7e0bc3cda93822e06fc1bb7acfb4c0d58e12_0.file.header.tpl.php on line 405



  • @krys a dit dans Erreur 500 suite installation :

    /cache/smarty/compile/fb/5d/7e/fb5d7e0bc3cda93822e06fc1bb7acfb4c0d58e12_0.file.header.tpl.php:

    Il y a quoi dans ce fichier à la ligne 405 ?

    Il faudrait savoir ce que fait votre override de Hook.php aussi.
    Vos erreur sont là car vous êtes passé sur une version PHP supérieure à 7. Si vos overrides n'ont pas été écrites pour cette version ça ne peut pas fonctionner.



  • C'est le cas, j'ai essayé de mettre en version 8 le PHP et ca me met cette erreur
    Par contre si je repasse en version 7.1.33, je n'ai plus l'erreur mais je n'ai que le bandeau du haut de la page admin
    Pas de menu et page vierge.

    Je pense que ma version de presta n'est pas compatible avec la votre.
    C'était ma roue de secours pour éviter de passer sur les nouvelles versions



  • @eolia a dit dans Erreur 500 suite installation :

    /cache/smarty/compile/fb/5d/7e/fb5d7e0bc3cda93822e06fc1bb7acfb4c0d58e12_0.file.header.tpl.php:

    Il y a quoi dans ce fichier à la ligne 405 ?

    Pouvez-vous me répondre svp ?



  • Voici

          <?php if (count($_smarty_tpl->tpl_vars['quick_access']->value) >= 0) {?>
    

    Merci pour l'aide.



  • Ok.
    Ce n'est pas normal que ce ne soit pas un tableau.
    Pour votre cas voici le correctif à effectuer:
    Dans le fichier /classes/AdminController.php, vers la ligne 2211 vous avez la fonction initHeader
    Dans celle-ci, remplacez le block concernant // Quick access par celui-ci:

            // Quick access
            if((int)$this->context->employee->id) {
                $quick_access = QuickAccess::getQuickAccesses($this->context->language->id);
                if(is_array($quick_access)) {
                    foreach($quick_access as $index => $quick) {
                        if($quick['link'] == '../' && Shop::getContext() == Shop::CONTEXT_SHOP) {
                            $url = $this->context->shop->getBaseURL();
                            if(!$url) {
                                unset($quick_access[$index]);
                                continue;
                            }
                            $quick_access[$index]['link'] = $url;
                        }
                        else {
                            preg_match('/controller=(.+)(&.+)?$/', $quick['link'], $admin_tab);
                            if(isset($admin_tab[1])) {
                                if(strpos($admin_tab[1], '&')) {
                                    $admin_tab[1] = substr($admin_tab[1], 0, strpos($admin_tab[1], '&'));
                                }
    
                                $token = Tools::getAdminToken($admin_tab[1]
                                    .(int)Tab::getIdFromClassName($admin_tab[1])
                                    .(int)$this->context->employee->id);
                                $quick_access[$index]['target'] = $admin_tab[1];
                                $quick_access[$index]['link'] .= '&token='.$token;
                            }
                        }
                    }
                }
                else {
                    $quick_access = array();
                }
            }
    


  • Le fichier se trouve bien dans le repertoire, Classes/Controller/ ?
    Je viens de faire la modification et ca ne change rien
    Toujours cette page admin avec le bandeau du haut et page blanche pour le reste.
    Je ne peux meme pas désactiver le mode maintenance



  • Bah ce n'est pas possible, dans tous les cas on envoie un tableau donc le tpl ne peut pas dire que ce n'est pas un tableau.
    Vous avez vidé le cache Prestashop ?



  • Oui le cache est vidé et toujours la meme page.

    279648db-96b9-4c69-ac6f-ece10d2e27f6-image.png



  • J'ai fait une autre installation de votre Prestashop, sur une autre instance.
    Celle ci est vierge et tout c'est bien passé.
    Je pense que ma version 1.6.1.24 est trop endommagé, cela fait des mois que le site ralenti et que je rencontre des petits bugs.
    Je vais trouver la solution pour envoyer toutes mes données sur la version vierge et repartir avec un site plus puissant.
    Faut que juste que je trouve la solution pour tout récupérer et tout envoyer.

    Merci encore pour votre aide.



  • Envoyez-moi un accès ftp si vous voulez, on pourra faire un audit du problème.



  • @eolia Comment faire pour vous envoyer ca en privé ?



  • Cliquez sur l'avatar de mon profil et les 3 points en haut à droite puis "Continuer la discussion avec Eolia"
    f1ed7cd9-04a5-4dcc-b5d9-4333c830109e-image.png


Se connecter pour répondre