aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Erreur module block_cart en php8.2 mais pas en php7.4

    Planifier Épinglé Verrouillé Déplacé Bugs & Améliorations
    14 Messages 3 Publieurs 4.0k Vues 3 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • T Hors-ligne
      tcdsmax
      dernière édition par

      Bonjour,
      je suis en train d'essayer de monter la version de php sur un site prestashop.

      J'ai un soucis avec le module block_cart quand je veux passer en php8.2, alors que sous php7.4 cela ne pose aucun soucis.
      (Bloc panier v14 - par PrestaShop updated by Eolia)

      L'erreur que j'ai se trouve dans un fichier cache smarty.

      Cette ligne génère l'erreur ci-dessous :
      <?php $_smarty_tpl->_assignInScope('free_ship', count($_smarty_tpl->tpl_vars['cart']->value->getDeliveryAddressesWithoutCarriers(true,$_smarty_tpl->tpl_vars['errors']->value)));?>

      Fatal error: Uncaught Error: Attempt to modify property "value" on null

      (httpdocs/cache/smarty/compile/cb/20/12/cb20123965304d8a0f541e19cc61cca45d224bc7_0.file.blockcart.tpl.php on line 260)

      J'ai installé une version vierge et tout fonctionne, donc je pense qu'il y a un soucis avec un autre module, ou une configuration, mais je ne sais pas trop par où chercher.

      Merci d'avance si quelqu'un peut me mettre sur la piste

      1 réponse Dernière réponse Répondre Citer 0
      • eoliaE Hors-ligne
        eolia
        dernière édition par

        Vous n'êtes pas sur le thème de base je suppose?
        Supprimez le fichier /themes/votre_theme/modules/blockcart/blockcart-json.tpl qui n'est pas conforme.

        Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

        1 réponse Dernière réponse Répondre Citer 0
        • T Hors-ligne
          tcdsmax
          dernière édition par

          @eolia a dit dans Erreur module block_cart en php8.2 mais pas en php7.4 :

          mez le fichier /themes/votre_theme/modules/blockcart/blockcart-json.tpl qui n'est pas conforme.

          je récupère ce site pour justement essayer de le rendre conforme, et effectivement, le thème utilisé n'est pas le thème de base.

          J'ai supprimé le fichier comme indiqué, j'ai vidé le cache, supprimé le fichier du dossier cache/smarty, mais rien ne change.

          Est-ce que ce serait plus judicieux de repartir d'une installation de base avec votre solution et de réimporter la base de donnée et intégrer les modules au fur et mesure ?
          Ou essayer de comprendre ce qui pose soucis ?

          1 réponse Dernière réponse Répondre Citer 0
          • eoliaE Hors-ligne
            eolia
            dernière édition par

            Si rien ne change, quel est le chemin indiqué dans le fichier du cache smarty svp ? (au début du fichier il y a le chemin du template qui a généré ce cache)

            Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

            1 réponse Dernière réponse Répondre Citer 0
            • T Hors-ligne
              tcdsmax
              dernière édition par

              c'est écrit :
              From source: /var/www/vhosts/xxxxxxx/httpdocs/themes/default-bootstrap/modules/blockcart/blockcart.tpl

              1 réponse Dernière réponse Répondre Citer 0
              • eoliaE Hors-ligne
                eolia
                dernière édition par

                Alors normalement cette ligne est commentée (avec des étoiles)
                {assign var='free_ship' value=!count($cart->getDeliveryAddressesWithoutCarriers(true))}

                Mais je ne comprends pas, je croyais que vous n'étiez pas sur le thème par défaut ???

                Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                1 réponse Dernière réponse Répondre Citer 0
                • T Hors-ligne
                  tcdsmax
                  dernière édition par

                  c'était bien ça.
                  je pense que c'est un thème qui a été bricolé. En plus le site avait été vérolé, d'où l'utilisation de votre patch. Et le désir de le mettre à jour avec votre solution.

                  à priori, ça à l'air d'être fonctionnel maintenant. Je ferai des tests avec mon client demain pour vérifier que tout est en place.

                  merci bcp pour l'aide et votre réactivité

                  1 réponse Dernière réponse Répondre Citer 1
                  • G Hors-ligne
                    Greg69
                    dernière édition par Greg69

                    j'ai le meme souci et on a essayé de commenter mais ca n'a pas fonctionné
                    theme de base : bootstrap

                    1 réponse Dernière réponse Répondre Citer 0
                    • eoliaE Hors-ligne
                      eolia
                      dernière édition par

                      Cette ligne est commentée dans le thème default_boostrap (sauf si vous ne l'avez pas mis à jour)

                      Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                      1 réponse Dernière réponse Répondre Citer 0
                      • G Hors-ligne
                        Greg69
                        dernière édition par

                        Elle était pas commentée, on l'a commenté. Ca a améliorer la chose mais on a eu autre chose qui a été noté. Ci joint l'erreur :

                        Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in /htdocs/monsite.site/cache/smarty/compile/51/ce/6e/51ce6e2db5d85c7c51dc25788166c1e589b872b9_0.file.blockwishlist_button.tpl.php:25 Stack trace: #0

                        1 réponse Dernière réponse Répondre Citer 0
                        • G Hors-ligne
                          Greg69
                          dernière édition par

                          en plus long ça donne cela :
                          Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in /htdocs/monsite.site/cache/smarty/compile/51/ce/6e/51ce6e2db5d85c7c51dc25788166c1e589b872b9_0.file.blockwishlist_button.tpl.php:25 Stack trace: #0 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_resource_base.php(123): content_663cf5a2323543_86080725(Object(Smarty_Internal_Template)) #1 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(Smarty_Internal_Template)) #2 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_template.php(218): Smarty_Template_Compiled->render(Object(Smarty_Internal_Template)) #3 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render(false, 0) #4 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_templatebase.php(122): Smarty_Internal_TemplateBase->_execute(Object(Smarty_Internal_Template), NULL, NULL, NULL, 0) #5 /htdocs/monsite.site/classes/module/Module.php(2589): Smarty_Internal_TemplateBase->fetch() #6 /htdocs/monsite.site/modules/blockwishlist/blockwishlist.php(149): ModuleCore->display('/htdocs/gregsit...', 'blockwishlist_b...') #7 /htdocs/monsite.site/classes/Hook.php(691): BlockWishList->hookDisplayProductListFunctionalButtons(Array) #8 /htdocs/monsite.site/classes/Hook.php(632): HookCore::coreCallHook(Object(BlockWishList), 'hookdisplayProd...', Array) #9 /htdocs/monsite.site/config/smarty.config.inc.php(220): HookCore::exec('displayProductL...', Array, NULL) #10 /htdocs/monsite.site/config/smarty.config.inc.php(432): smartyHook(Array, Object(Smarty_Internal_Template)) #11 /htdocs/monsite.site/cache/smarty/compile/d6/48/ad/d648ad39e0b02e016ec1f7be28ac4316bb85dc9b_0.file.product-list.tpl.php(346): SmartyLazyRegister->__call('smartyHook', Array) #12 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_resource_base.php(123): content_663cf5a2310703_16196701(Object(Smarty_Internal_Template)) #13 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(Smarty_Internal_Template)) #14 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_template.php(218): Smarty_Template_Compiled->render(Object(Smarty_Internal_Template)) #15 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_template.php(387): Smarty_Internal_Template->render() #16 /htdocs/monsite.site/cache/smarty/compile/eb/c0/7f/ebc07f31a72735915984e75bf312676460948919_0.file.category.tpl.php(154): Smarty_Internal_Template->_subTemplateRender('file:./product-...', NULL, NULL, 0, 3600, Array, 0, false) #17 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_resource_base.php(123): content_663cf5a2237786_26004306(Object(Smarty_Internal_Template)) #18 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(Smarty_Internal_Template)) #19 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_template.php(218): Smarty_Template_Compiled->render(Object(Smarty_Internal_Template)) #20 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render(false, 0) #21 /htdocs/monsite.site/tools/smarty/sysplugins/smarty_internal_templatebase.php(122): Smarty_Internal_TemplateBase->_execute(Object(Smarty_Internal_Template), NULL, NULL, NULL, 0) #22 /htdocs/monsite.site/classes/controller/FrontController.php(956): Smarty_Internal_TemplateBase->fetch('/htdocs/gregsit...') #23 /htdocs/monsite.site/classes/controller/Controller.php(239): FrontControllerCore->display() #24 /htdocs/monsite.site/classes/Dispatcher.php(415): ControllerCore->run() #25 /htdocs/monsite.site/index.php(27): DispatcherCore->dispatch() #26 {main} thrown in /htdocs/monsite.site/cache/smarty/compile/51/ce/6e/51ce6e2db5d85c7c51dc25788166c1e589b872b9_0.file.blockwishlist_button.tpl.php on line 25

                          1 réponse Dernière réponse Répondre Citer 0
                          • eoliaE Hors-ligne
                            eolia
                            dernière édition par eolia

                            Vous avez quoi au debut de votre fichier /themes/votre_theme/modules/blockwishlist/blockwishlist_button.tpl ?

                            Normalement vous devriez avoir soit:

                            {if !empty($wishlists) && count($wishlists) > 1}
                            

                            Soit

                            {if isset($wishlists) && is_countable($wishlists) && count($wishlists) > 1}
                            

                            C'est bien joli de vouloir changer de version PHP mais si votre thème ou vos modules ont plus de 5 ans vous prenez le risque de les débuguer un par un sachant qu'à l'époque PHP 8 n'existait pas du tout et était inconnu des développeurs.

                            Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                            G 1 réponse Dernière réponse Répondre Citer 0
                            • G Hors-ligne
                              Greg69 @eolia
                              dernière édition par

                              j'ai bien la premiere ligne sur le fichier :
                              if isset($wishlists) && count($wishlists) > 1}

                              oui on est en train de voir que c'est pas une super idée. Vu que les modules étaient en partie natif, j'ai pensé que ca allait quand meme fonctionné sur la version phenix

                              1 réponse Dernière réponse Répondre Citer 0
                              • eoliaE Hors-ligne
                                eolia
                                dernière édition par

                                Ben non, regardez mieux, vous n'avez pas la même ligne (isset est différent de not empty)

                                Tous les modules natifs de Phenix sont compatibles PHP 8.3 mais si votre thème a ses propres tpls je ne peux rien vous garantir.

                                Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

                                1 réponse Dernière réponse Répondre Citer 0
                                • Premier message
                                  Dernier message
                                bug
                                26 sujets
                                1.6
                                24 sujets
                                front-office
                                11 sujets
                                1.5
                                8 sujets
                                1.7
                                5 sujets
                                système
                                4 sujets
                                administration
                                3 sujets
                                hack
                                3 sujets
                                module
                                3 sujets
                                performance
                                3 sujets
                                smtp
                                3 sujets
                                transporteurs
                                3 sujets
                                dashboard
                                2 sujets
                                https
                                2 sujets
                                paypal
                                2 sujets
                                promotions
                                2 sujets