Mise à jour en 5.8.15 - 5.8.16 : compatibilité plugins

TomekTomek Member
août 2024 modifié dans Entraide

Bonjour,

La mise à jour en 5.8.15 depuis une 5.8.9 m'amène son lot de messages d'erreur (sous une forme que je trouve démesurée visuellement) tant sur le front qu'en back. Y a-t-il moyen de désactiver ces messages (sur le front surtout) ?
Ensuite, voici le message en front :

Fatal error :
type : 8192
message : trim(): Passing null to parameter #1 ($string) of type string is deprecated
file : /core/lib/class.plx.motor.php
line : 1114
See https://www.php.net/manual/en/errorfunc.constants.php about type of error

Comment peut-on corriger ce problème ?

D'autre part, je m'étonne qu'à la mise à jour de PluXml, un plugin ayant un simple deprecated* soit directement désactivé ? Ça n'est pas un peu radical comme façon de procéder ?
J'utilise J'utilisais artGalerie qui a été désactivé… il ne me semble pas qu'il y ait de mise à jour ?

*L'erreur en question :

An error is occured with the "ARTGALERIE" plugin :
type : 8192
message : Creation of dynamic property artGalerie::$aDirs is deprecated
file : artGalerie/artGalerie.php
line : 261
Mots clés:

Réponses

  • Bonsoir,

    Pour la première erreur : https://forum.pluxml.org/discussion/7669/resolu-fatal-error-type-8192-durant-edition-page-statique

    pour ARTGALLERIE:

    Quelle version de artgalerie utilises tu ? As tu le lien de télechargement ?


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • TomekTomek Member

    En cherchant un peu, j'ai désactivé l'affichage des messages d'erreur en ajoutant const PLX_DEBUG = false; au fichier config.php.

  • TomekTomek Member

    Merci gcyrillus ! Aussi étrange que ça puisse paraître, je n'avais pas installé la dernière version (4.5) de ArtGalerie qui date de… 2016. Et du coup le plugin fonctionne à nouveau !

    J'ai aussi découvert que le debug est dans core/lib/config.php, et que c'est plutôt là qu'il faut le modifier.

  • TomekTomek Member

    Pour le bug du core, ça n'est pas celui que tu indiques (et son correctif ne fonctionne pas) concernant les pages statiques.

  • ah, oki, sur quelle pages ou quelles conditions apparait-il?
    est ce du à un plugin ?


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • TomekTomek Member

    Ça apparait en front sur une page… Aucune idée pour le plugin.

  • @tomek, ça va être difficile de trouver d'où ça vient avec si peu d'indices :( Est tu sûr qu'il n'y a vraiment pas de warning indiquant un fichier et un numéro de lignes ?


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • TomekTomek Member
    août 2024 modifié

    J'ai ça dans les logs quand j'affiche une page (avec un gabarit perso) :
    PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /monsite/core/lib/class.plx.motor.php on line 1114

    C'est quand j'affiche une page.
    En front, sur ces pages, j'utilise extra_SEO 2.0.8.1 et KZChamPlus 2.6.8.

  • Bonjour,

    je n'arrive pas à reproduire ton bug .
    C'est peut-être l'occasion de tenter de te servir du formulaire https://pluxopolis.net/signaler-un-bug-sur-le-forum-de-pluxml.html Pour donner le max d'info sur ton soucis.

    À priori, cela à a voir avec une variable à traiter comme une url qui est manquante ... Où et depuis quel script? , mystère


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • TomekTomek Member

    Je viens de faire la mise à jour depuis une 5.8.9 sur le même site en local, en ayant mis à jour les plugins avant, et pas un seul message d'erreur ! Je vais investiguer. Merci pour ton aide en tout cas.

  • TomekTomek Member
    août 2024 modifié

    J'ai maintenant une erreur fatale en 5.8.16 et en désactivant tous les plugins et réactivant un par un, j'ai trouvé que c'était ExtraSEO v2.0.8.1 le fautif.
    Voici l'erreur :

    Fatal error :
        type : 1
        message : Uncaught Error: Call to undefined method plxShow::pageUrl() in /monsite/index.php(81) : eval()'d code:8
        Stack trace:
        0 /monsite/index.php(81): eval()
        1 {main}
        thrown
        file : /index.php(81) : eval()'d code
        line : 8
    
  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Dans le fichier extra_SEO.php du plugin, à la ligne n°161, remplace l'expression suivante :

    if(version_compare(PLX_VERSION, '5.8.15', ">"))
    

    par :

    if(version_compare(PLX_VERSION, '5.9.0', ">="))
    

    La méthode plxShow::pageUrl() n'existe qu'à partir de la version 5.9.0 de PluXml qui sera publiée cet automne.

  • NonoMNonoM Member
    août 2024 modifié

    Cool, ça roule... moi aussi j'avais été dans l'obligation de désactiver "extra_SEO", alors grand Merci @bazooka07 !

  • @Tomek il y a aussi la version 2.0.8.2 déjà disponible https://ressources.pluxopolis.net/banque-plugins/plugins/extra_SEO.2.0.8.2.zip

    @bazooka07 merci pour l'info , je referait une maj mineure pour me caler sur ce numéro de version ;)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @gcyrillus-nomade
    Quand la version 5.8.17 sera publiée, le problème va ressortir.
    Il faut prendre la solution que j'ai proposé en changeant l'opérateur pour la fonction version_compare().

    Un petit "grep -n version_compare *.php" s'impose :

    config.php:47:      if(version_compare(PLX_VERSION, '5.8.14', "<=")) { 
    config.php:105: <?php  if(version_compare(PLX_VERSION, '5.8.14', "<=")) { ?>
    extra_SEO.php:161:      if(version_compare(PLX_VERSION, '5.8.16', ">")) $output = str_replace($plxShow->pageUrl(), ob_get_clean().$plxShow->plxMotor->urlRewrite( str_replace($plxShow->plxMotor->racine, '',$plxShow->pageUrl())), $output);
    extra_SEO.php:458:                  if(version_compare(PLX_VERSION, '5.8.0', ">=")  && $plxShow->catThumbnail('#img_url',false) !=''  ) {
    extra_SEO.php:709:          if(version_compare(PLX_VERSION, '5.9.0', ">="))  include(PLX_PLUGINS.'extra_SEO/inc.sitemapBegin.php');
    preHeat.php:91:         if(version_compare(PLX_VERSION, '5.8.0', ">="))$tagUrls = array_map(array('plxUtils', 'urlify'), $tags);
    

    Il y a aussi des str_replace() à remplacer par strtr(). Plus rapide et plus fiable !

    Tu as le source du plugin sur http://github.com pour faire des pull_requests ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @gcyrillus-nomade

    Pour s'affranchir des numéros de version, on doit pouvoir utiliser :

    if(method_exists($plxShow, 'pageUrl')) $output = str_replace($plxShow->pageUrl(), ob_get_clean().$plxShow->plxMotor->urlRewrite( str_replace($plxShow->plxMotor->racine, '',$plxShow->pageUrl())), $output);
    

    La présence de ob_get_clean() sans sa contre-partie ob_start() dans le bloc de code du if me semble suspecte

  • @bazooka07

    effectivement , il y a un loup, corrigé.
    J'en ai profité pour passé sur la 2.0.9.0 que j'ai remis sur github https://github.com/gcyrillus/extra_SEO
    et pluxopolis https://ressources.pluxopolis.net/banque-plugins/plugins/extra_SEO.2.0.9.0.zip

    Je n'ai pas regardé pour method_exists ni à faire le switch avec strtr() , je reviendrais dessus plus tard, depuis la première version il y a eu pas mal de changement dans PluXml et il y a surement une option ou deux à revoir ou à éliminer définitivement.
    ( La gestion des pages d'erreurs m'intrigue et me chagrine toujours un peu ;) )


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • NonoMNonoM Member

    Tout est OK avec Pluxml 5.8.16, merci pour cette nouvelle version extra_SEO.2.0.9.0 @gcyrillus-nomade !

  • NonoMNonoM Member
    septembre 2024 modifié

    EDIT : Existe-t-il "une procédure" permettant de trouver et de remplacer les lignes de codes nécessaires à l'adaptation de certains plugins devenus récalcitrants depuis la sortie de Pluxml 5.8.15 ? ;)
    Je pense notamment à ceux qui sont renommés systématiquement en ".orig" ;)

  • Existe-t-il "une procédure" permettant de trouver et de remplacer les lignes de codes nécessaires à l'adaptation de certains plugins devenus récalcitrants depuis la sortie de Pluxml 5.8.15 ? ;)
    Je pense notamment à ceux qui sont renommés systématiquement en ".orig" ;)

    Quelque soit le type d'erreur, il faut lire tranquillement tout les messages d'erreur et relever de quelle erreur il s'agit, (une fonction obsolète, une variable , une typo,) , le non du fichier et ou de la ligne . puis aller aux endroits indiqués et enquêter :) si l'on peut dire comme ça.

    Beaucoup d'erreur sont dues à des variables mal déclarées ou des fonctions devenu obsolète qu'il faut remplacer.

    https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/gestion-erreur/ Cela permet de comprendre un peu mieux comment PHP gerent les erreurs


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • krockroc Member
    septembre 2024 modifié

    Hello,
    En passant de la 5.8.5 à la dernière version proposée (5.8.16), j'ai cette erreur qui s'affiche en backoffice :

    Fatal error :
    type : 2
    message : Trying to access array offset on value of type null
    file : /core/lib/class.plx.motor.php
    line : 738
    
    See https://www.php.net/manual/en/errorfunc.constants.php about type of error
    ============================================================
    User : 001
    Profil : 0
    PluXml version : 5.8.16
    PLX_DEBUG : false
    PHP version : 8.1.29
    

    ETC.
    Comment faire pour corriger cela ?
    Merci !

  • Apparemment c'est l'un des champs thumb_x qui manque dans les articles. Normalement pluxml corrige cela tout seul maintenant.


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • Ce message s'affiche uniquement dans la partie "Articles" du backoffice (/core/admin/index.php?page=1)...

  • Merci @gcyrillus-nomade , je vais suivre tes conseils (ou du moins essayer)... et revenir à l'occasion pour en recauser !

Connectez-vous ou Inscrivez-vous pour répondre.