Récemment
-
Des modules et des hacks - liste non exhaustive des modules présentant un risque
Discussion générale17 -
Thème enfant
PhenixSuite16 -
SumUp Payments Constant Update Request
Modules2 -
PaypalAPI erreur
PhenixSuite53 -
Problèmes de prix avec plusieurs devises et PayPal
PhenixSuite6 -
Solutions de paiement...
Discussion générale5 -
Petit code pour les descriptions de produits
Discussion générale3 -
Feuilles de styles non chargées si smart cache activé [RÉSOLU]
PhenixSuite5 -
PayPal Module Error
Bugs & Améliorations2 -
Transient Bug after 1.6.2.31 Upgrade
Bugs & Améliorations2 -
blockcategory et left_column
BUG connus1 -
[REGLÉ] override - je n'y arrive pas.
Modules10 -
les routes sur mesures
Discussion générale6 -
Nouvelle attaque ?
Discussion générale11 -
Problème calcul HT
Bugs & Améliorations42 -
Erreur sur facture générée depuis le FO
PhenixSuite3 -
Factures ne se génèrent plus depuis 06/12 [RÉSOLU]
Bugs & Améliorations20 -
Edition en masse des déclinaisons
Nouvelles fonctionnalités4 -
Mise à niveau de Prestashop 1.6.24 vers PhenixSuite 1.6.30
Discussion générale2 -
Thème possible
Questions relatives à l'installation/upgrade2
1.6.2.19 - Erreur sur le module Editeur de page d'accueil
-
Phenix version 1.6.2.19/php8.1
J'ai une erreur sur le module "Editeur de page d'accueil v10 - par PrestaShop modified by Eolia"
(voir l'erreur plus bas)Contexte:
Une fois installé, j'apporte des modifications sur sa page de paramètre et lorsque j'enregistre cela fait une erreur.Solution apportée:
L'erreur rencontrée est une "TypeError" qui se produit dans le fichier /home/vabw9579/phenix.thierrylaval.dev/modules/editorial/EditorialClass.php à la ligne 80.
J'ai modifié la méthode copyFromPost de la classe EditorialClass. Le problème se situe à l'intérieur de cette méthode où vous utilisez la fonction key_exists pour vérifier si une clé existe dans un tableau. Cependant, dans votre cas, vous utilisez key_exists de manière incorrecte car il attend un tableau en deuxième argument, mais vous lui passez la classe EditorialClass.
Pour faire simple, j'ai remplacé la ligne 80
if (key_exists($key, $this) && $key != 'id_'.$this->table) $this->{$key} = $value;
par:
if (property_exists($this, $key) && $key != 'id_'.$this->table) $this->{$key} = $value;
Cela fonctionne. Suis-je ok avec cette modifications ?
Erreur pour info:
Fatal error: Uncaught TypeError: key_exists(): Argument #2 ($array) must be of type array, EditorialClass given in /home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php:80 Stack trace: #0 /home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php(80): key_exists() #1 /home/vabw9579/phenix.prestashop.dev/modules/editorial/editorial.php(267): EditorialClass->copyFromPost() #2 /home/vabw9579/phenix.prestashop.dev/modules/editorial/editorial.php(218): Editorial->postProcess() #3 /home/vabw9579/phenix.prestashop.dev/controllers/admin/AdminModulesController.php(1125): Editorial->getContent() #4 /home/vabw9579/phenix.prestashop.dev/controllers/admin/AdminModulesController.php(1461): AdminModulesControllerCore->postProcessCallback() #5 /home/vabw9579/phenix.prestashop.dev/classes/controller/Controller.php(201): AdminModulesControllerCore->postProcess() #6 /home/vabw9579/phenix.prestashop.dev/classes/Dispatcher.php(405): ControllerCore->run() #7 /home/vabw9579/phenix.prestashop.dev/xxxxxxxxxxxxx/index.php(79): DispatcherCore->dispatch() #8 {main} thrown in /home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php on line 80
[PrestaShop] Fatal error in module file :/home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php:
Uncaught TypeError: key_exists(): Argument #2 ($array) must be of type array, EditorialClass given in /home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php:80 Stack trace: #0 /home/vabw9579/phenix.prestashop.dev/modules/editorial/EditorialClass.php(80): key_exists() #1 /home/vabw9579/phenix.prestashop.dev/modules/editorial/editorial.php(267): EditorialClass->copyFromPost() #2 /home/vabw9579/phenix.prestashop.dev/modules/editorial/editorial.php(218): Editorial->postProcess() #3 /home/vabw9579/phenix.prestashop.dev/controllers/admin/AdminModulesController.php(1125): Editorial->getContent() #4 /home/vabw9579/phenix.prestashop.dev/controllers/admin/AdminModulesController.php(1461): AdminModulesControllerCore->postProcessCallback() #5 /home/vabw9579/phenix.prestashop.devclasses/controller/Controller.php(201): AdminModulesControllerCore->postProcess() #6 /home/vabw9579/phenix.prestashop.dev/classes/Dispatcher.php(405): ControllerCore->run() #7 /home/vabw9579/phenix.prestashop.dev/adminxxxxxxxxxxx/index.php(79): DispatcherCore->dispatch() #8 {main} thrown
-
Vous avez tout à fait raison, cette ligne m'a échappé lors du contrôle de conformité PHP 8.
Avant PHP7.4 ce code fonctionnait (warning au lieu de fatal)
Je n'ai pas encore contrôlé tous les cas de figure dans les modules natifs.Merci pour votre retour ce sera appliqué dans la v20 ;)
-
En gros, les fichiers qui ont la licence phenixsuite en en-tête ont été contrôlés en conformité PHP 8.2 mini, les autres font partie de la TODO List^^
-
@eolia a dit dans 1.6.2.19 - Erreur sur le module Editeur de page d'accueil :
...
Je me permets de rajouter que c'est moi qui remercie pour cet excellent travail sur cette version de Prestashop Phenix. Et c'est un plaisir de chercher des solutions à proposer.
Bravo et merci pour cette mise à disposition de Phenix.