Ludo14320 Posted October 22, 2015 Share Posted October 22, 2015 (edited) Bonjour à tous, Hier soir, à la mise à jour d'un module, mon BO s'est déconnecté et je ne peux plus y accéder depuis. J'obtiens une erreur 500. Lorsque je passe en mode debug, voici le message obtenu : Fatal error: Can't use function return value in write context in /home/marquagenv/www/modules/sd_attributepictures/classes/Samdha/AttributePictures/Tools.php on line 103 Voici l'extrait du fichier Tools.php mis en cause : // save combinations images foreach ($combinations_images as $id_product_attribute => $images) { if (!empty(array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ))) { if (class_exists('Combination')) { $combination_object = new Combination($id_product_attribute); } else { // compatibility 1.3 $combination_object = $id_product_attribute; } $this->setCombinationImages($combination_object, $images); if (method_exists('Hook', 'exec')) { Hook::exec( 'actionProductAttributeUpdate', array('id_product_attribute' => $id_product_attribute) ); } } } La ligne 103 correspondant aux 3 parenthèses à la suite à la 6e ligne de l'extrait ci-dessus. J'ai cherché toute la soirée d'hier pour trouver une éventuelle erreur de syntaxe mais je sèche avec mon ami Google. Quelqu'un saurait-il m'aider SVP ? Inutile de vous dire que c'est assez urgent car je ne peux plus du tout accèder à mon back office (le front fonctionne par contre) Merci par avance à tous ! Tools.php Edited October 22, 2015 by Ludo14320 (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 22, 2015 Share Posted October 22, 2015 Bonjour, je viens de transmettre votre soucis au développeur de ce module. Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted October 22, 2015 Share Posted October 22, 2015 (edited) essai de remplacer ça: if (!empty(array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ))) par ça: $myArray = array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ) if (!empty($myArray)) Edited October 22, 2015 by manit4c (Olivier C.) (see edit history) Link to comment Share on other sites More sharing options...
shagshag Posted October 22, 2015 Share Posted October 22, 2015 (edited) Je suis l'auteur du module. Donc oui je confirme l'erreur pour PHP < 5.5 (voir la note dans la doc de PHP http://php.net/manual/fr/function.empty.php) La correction de @manit4c fonctionne (sauf pour le nom de variable $myArray non conforme mais ça n'a pas d'importance). Ce qui m'étonne, c'est que vous ne puissiez plus accéder à votre back office. Cette portion de code n'est exécutée que lorsqu'on valide les changements d'associations d'image en utilisant les attributs dans la page de configuration du module. Donc c'est assez spécifique, ça ne devrait pas perturber le reste du site. Je corrige le module ceci dit. Cordialement Edited October 22, 2015 by shagshag (see edit history) 1 Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted October 22, 2015 Share Posted October 22, 2015 La correction de @manit4c fonctionne (sauf pour le nom de variable $myArray non conforme mais ça n'a pas d'importance). C'est vrai $my_array ça sera plus propre ! Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 22, 2015 Share Posted October 22, 2015 $my_array = array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ); if (!empty($my_array)) Link to comment Share on other sites More sharing options...
shagshag Posted October 22, 2015 Share Posted October 22, 2015 Exacte, il manque un ; Voici le fichier corrigé. Tools.php Link to comment Share on other sites More sharing options...
Ludo14320 Posted October 22, 2015 Author Share Posted October 22, 2015 Merci à tous pour votre aide ! J'ai fait la modif en remplacant le code if (!empty(array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ))) par le code $$my_array = array_merge( array_diff_assoc($images, $old_combinations_images[$id_product_attribute]), array_diff_assoc($old_combinations_images[$id_product_attribute], $images) ) if (!empty($my_array)) J'ai désormais le code erreur suivant : Parse error: syntax error, unexpected 'if' (T_IF) in /home/marquagenv/www/modules/sd_attributepictures/classes/Samdha/AttributePictures/Tools.php on line 104 La ligne 104 correspondant à : if (!empty($my_array)) Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted October 22, 2015 Share Posted October 22, 2015 il manque un point virgule après la parenthèse qui se trouve avant le if et vous avez mis deux $ pour my_array il n'en faut qu'un Link to comment Share on other sites More sharing options...
Ludo14320 Posted October 22, 2015 Author Share Posted October 22, 2015 Un énorme merci à tous ! C'est tout bon !!! Par contre "Image des déclinaisons me propose un MAJ. Je la fais ou pas ? Link to comment Share on other sites More sharing options...
shagshag Posted October 22, 2015 Share Posted October 22, 2015 Oui vous pouvez, j'ai mis en ligne une nouvelle version du module avec cette correction. 1 Link to comment Share on other sites More sharing options...
Ludo14320 Posted October 22, 2015 Author Share Posted October 22, 2015 Super ! Merci à tous pour votre réactivité... PS #shagshag : le module des images déclinaisons est vraiment bien depuis les dernières évolutions et la gestion par onglets ! Un must pour celles et ceux qui ont beaucoup de déclinaisons à gérer ! Merci ! 1 Link to comment Share on other sites More sharing options...
shagshag Posted October 22, 2015 Share Posted October 22, 2015 Merci, ça fait plaisir. N'hésitez pas si vous avez des idées de fonctionnalité à ajouter. Bonne journée. Link to comment Share on other sites More sharing options...
Ludo14320 Posted October 22, 2015 Author Share Posted October 22, 2015 Pour info, j'ai fais la mise à jour proposé par mon back office et je me suis de nouveau retrouvé en erreur... Pas trop grave pour moi puisque je sais maintenant quoi corriger mais je pense que ça va arriver à d'autres Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now