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



  • @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 ?



  • 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)



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



  • 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 ???



  • 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é



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



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



  • 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



  • 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



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



  • 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



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


Se connecter pour répondre