Jump to content

Accès BO impossible suite mise à jour


Recommended Posts

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 by Ludo14320 (see edit history)
Link to comment
Share on other sites

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 by manit4c (Olivier C.) (see edit history)
Link to comment
Share on other sites

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 by shagshag (see edit history)
  • Like 1
Link to comment
Share on other sites

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

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 !

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...