[Résolu] Array au lieu de string dans constructeur de classe plxPlugin
J'ai un message d'erreur qui apparaît maintenant en local (j'ai renouvelé mon serveur local Xampp avec PHP 5.6) et qui concerne le fichier core/lib/class.plx.plugins.php :
"Notice : Array to string conversion" pour la ligne 345 et parfois la ligne 365, pour chacun des plugins activés.
Ce problème concerne paramètre $lang, qui est défini à partir de $default_lang lors de l'appel du constructeur, dans chaque plugin :
Je ne vois pas trop comment ce $default_lang devient un tableau.
J'ai provisoirement résolu le problème avec un bricolage qui transforme le tableau en chaîne de caractères. J'ai ajouté un if après la ligne 313 dans le fichier core/lib/class.plx.plugins.php :
Mais il y a certainement une solution plus rationnelle à ce problème, quelqu'un aurait-il une idée Svp ?
"Notice : Array to string conversion" pour la ligne 345 et parfois la ligne 365, pour chacun des plugins activés.
Ce problème concerne paramètre $lang, qui est défini à partir de $default_lang lors de l'appel du constructeur, dans chaque plugin :
[== PHP ==]
public function __construct($default_lang) { ... }
Je ne vois pas trop comment ce $default_lang devient un tableau.
J'ai provisoirement résolu le problème avec un bricolage qui transforme le tableau en chaîne de caractères. J'ai ajouté un if après la ligne 313 dans le fichier core/lib/class.plx.plugins.php :
[== PHP ==]
public function __construct($default_lang='') {
if (is_array($default_lang)) { $default_lang = ''; }
Mais il y a certainement une solution plus rationnelle à ce problème, quelqu'un aurait-il une idée Svp ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu sais gérer XDebug, c'est facile de retrouver le coupable.
Essaie en désactivant tous tes plugins, et de les réactiver un par un jusqu'à provoquer l'erreur à nouveau
Commencer par les plugins les plus basiques.
Au cas où, désactive la réécriture d'URLs mais je n'y crois pas trop.
Et bien sûr PHP version >= 5.6.36 (beaucoup trop de vieilles versions sous W$ - les MAJ sous W$, tu sais quand ça commence, mais tu sais pas quand ça finit )
last release pour PHP : 7.2.5
Et PluXml 5.6 pour finir
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
J'utilise bien PluXml 5.6 et ma version de PHP est la 5.6.33, je ne suis pas resté sur la version 7, j'avais trop d'incompatibilités avec d'anciennes versions de sites, je verrai ça au fur et à mesure.
Cela ne vient pas d'un plugin en particulier, l'erreur apparaît une fois pour chacun des plugins activés, j'ai testé en affichant le nom de chacun.
Je n'utilise pas le multilinguisme non plus. Je n'ai pas l'habitude d'utiliser XDebug, dans un coin j'ai CodeLobster qui paraît très bien, mais je ne m'en sers pas encore.
Et l'erreur se produit côté site ou côté admin ?
Sinon , crée un nouveau dossier sur ton serveur et fais une nouvelle installation de PluXml dedans.
Il n'est pas nécessaire que PluXml soit à la racine du serveur.
Ensuite copie ton dossier data original dans la nouvelle installation.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
J'ai fait une autre installation de PluXml, toujours 5.6, et là pas de problème.
En reprenant mon installation avec erreur, j'ai remis le fichier d'origine core/lib/class.plx.plugins.php et là, plus de problème !
Je ne sais pas trop ce qui s'est passé. Depuis, j'ai changé le doctype de mon ancien thème, histoire de le moderniser en HTML5 (il était en XHTML), pour pouvoir ensuite y inclure des balises plus modernes.
Il y avait sans doute quelque chose du côté de ce thème, qui était ancien, je rejoins ton idée.
Merci en tout cas Bazooka07 de t'être penché sur la question !