Récemment
-
Images produit qui disparaissent
Bugs & Améliorations15 -
Urls bizarres dans la console search
PhenixSuite12 -
Erreurs 410 dans BO
PhenixSuite3 -
la classe search
Bugs & Améliorations2 -
Probleme depuis MAJ phenix 1.6.2.36
PhenixSuite8 -
[resolu] Le module mondial relay 3.4.5
Bugs & Améliorations1 -
controlleur fournisseurs.
Bugs & Améliorations11 -
J'en profite (la fougue de la jeunesse) (ah ah ah)
Bugs & Améliorations5 -
Bon dernier du jour mais cela me turlupine classe search
Bugs & Améliorations4 -
se connecter comme un client idntifié
Bugs & Améliorations1 -
la bonne blague
Discussion générale2 -
Passage de la 16.1.9 a la PhenixSuite 1.6.2.36
Bugs & Améliorations8 -
Echec de l'installation de Creative Elements
Bugs & Améliorations3 -
[Résolu] Modification données client dans l'admin
PhenixSuite10 -
googletagmanager
PhenixSuite2 -
2 téléphones obligatoires
PhenixSuite11 -
Liens qui disparaissent
PhenixSuite5 -
Smart cache JS et Iphone
PhenixSuite1 -
Hack ancien PS 1.6 avant mise à jour Phenix
PhenixSuite3 -
[RESOLU]Souci Revolut et Hipay
Modules11
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.