[Résolu] Array au lieu de string dans constructeur de classe plxPlugin

FrancisFrancis Member
mai 2018 modifié dans Bogues
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 :
[== 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 ?

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mai 2018 modifié
    Tu gères le multi-linguisme sur ton site ?

    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
  • FrancisFrancis Member
    mai 2018 modifié
    Merci Bazooka07 pour ton aide.
    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.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mai 2018 modifié
    Tu as le souci avec le thème par défaut ou un thème perso.
    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.
  • FrancisFrancis Member
    mai 2018 modifié
    L'erreur était côté site, c'est un ancien site avec un thème perso que j'actualise.

    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 !
Connectez-vous ou Inscrivez-vous pour répondre.