Jump to content

Erreur après MAJ modules


Recommended Posts

Bonjour,

J'utilise la version 1.6.1.7

Quand j'ai ouvert le backoffice, j'ai vu que 3 modules devaient être mis à jour. J'ai lancé cette mise à jour et obtenu une erreur. Je ne peux plus entrer dans la page modules sans avoir cette erreur :

 

Parse error: syntax error, unexpected '[' in /var/www/prestashop/classes/module/Module.php(1361) : eval()'d code on line 108 Parse error: syntax error, unexpected '[' in /var/www/prestashop/modules/statsdata/statsdata.php on line 108 [PrestaShop] Fatal error in module file :/var/www/prestashop/modules/statsdata/statsdata.php:
syntax error, unexpected '['

 

ni en frontoffice à cause de cette erreur : Parse error: syntax error, unexpected '[' in /var/www/prestashop/modules/statsdata/statsdata.php on line 108

 

J'ai regardé le module statsdata et la ligne 108 se trouve après un test if (_PS_VERSION_ >= 1.7) dans lequel je ne devrais passer puisqu'en 1.6.1.7

 

Evidemment je ne comprends pas !

Quelqu'un peut m'éclairer ?

Merci d'avance.

Edited by JLvsPS (see edit history)
Link to comment
Share on other sites

Voici les lignes de 101 à 111 du fichier statsdata.php

 

101 -  private function getScriptPlugins($params)
102 -   {
103 -       if (!isset($params['cookie']->id_guest)) {
104 -            Guest::setNewGuest($params['cookie']);
105
106 -             if (Configuration::get('PS_STATSDATA_PLUGINS')) {
107 -               if (_PS_VERSION_ >= 1.7) {
108 -                   $this->context->controller->registerJavascript('modules-plugindetect', 'modules/'.$this->name.'/js/plugindetect.js', ['position' => 'bottom', 'priority' => 150]);
109 -               } else {
110 -                 $this->context->controller->addJS($this->_path.'js/plugindetect.js');
111 -               }
 

Edited by JLvsPS (see edit history)
Link to comment
Share on other sites

Hmmm...Le tableau dans la ligne 108 est en short syntax, si je ne m'abuse (Vraiment weird comme expression quand on l'écris celle-là. Qui est-ce qui s'abuse et c'est quoi le lien avec se tromper...not the point here), la short syntax est de version PHP 5.4 et plus. Votre serveur est peut être en version << que 5.4 (Plus supporté)

 

2 options s'offre à vous. Le code sera toujours invalide, même s'il ne passe pas dans le if c'est une erreur de syntax celles-ci ne peuvent être évité.

 

Donc soit :

  • Vous mettez votre compte sur serveur à la version PHP 5.4 et plus. Je vous conseil fortement d'en parler avec votre hébergeur si vous êtes en dessous de cette version. Même en 5.4 vous êtes en retard. Les version courante en ce moment sont : 5.6 et 7. (Ayant un prestashop 1.6.1.7, je conseils fortement php 7, la performance a été beaucoup travaillé dans cette version! De plus...si vous êtes sous 5.4, vous êtes en retard pas mal! À parler avec votre hébergeur, crucial)
  • Quick fix : Changer la définition du tableau de : ['position' => 'bottom', 'priority' => 150]    à   array('position' => 'bottom', 'priority' => 150)

Le quick fix est à faire pour le moment, entre temps, mais il faut absolument valider que votre Version PHP est 5.6 ou plus, ça juste pas d'allure qu'un hébergeur vous garde sous ce seuil.

 

Cordialement,

 

Martin.

 

.

Link to comment
Share on other sites

J'ai utilisé votre quickfix et le problème est résolu.

J'ai vérifié, la version de PHP qui tourne sur le serveur est 5.3.3... Je vais leur demander un upgrade.

Merci pour votre aide rapide et efficace.

 

Cordialement,

 

Jean-Louis

Link to comment
Share on other sites

  • 4 weeks later...

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