Erreur LScache avec Virtuemart

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Erreur LScache avec Virtuemart

    Bonjour,

    Après migration d'un site d'un serveur World Pro PlanetHoster vers un serveur n0c, l'activation de LScache provoque dans Virtuemart cette erreur
    Call to undefined method Joomla\Event\Dispatcher::register()
    Le rapport d'erreurs donne
    JROOT/plugins/system/lscache/components/com_virtuemart.php:15
    Le débogage signale aussi ce que je n'avais jamais vu
    Warning: Attempt to read property "id" on null in /home/boutkpqm/public_html/plugins/system/lscache/lscache.php on line 209
    Aucune erreur précédemment. Le site est à jour, en version 8.0 de PHP
    J'ai installé la version "latest" de l'extension LScache, sans effet.

    Qui aurait une idée de la cause et d'une solution ?
    Merci d'avance
    Dernière édition par RobertG à 09/03/2023, 12h15
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Bon, même souci avec un site neuf.
    La question est de savoir pourquoi il n'y avait pas d'erreur sous cPanel, mais seulement sur n0c.

    Renommer le fichier com_virtuemart.php cité dans le message d'erreur résout le problème et permet de continuer à utiliser LScache.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Si j'ai bien compris, mais ça ne coïncide pas avec mon souvenir d'absence d'erreur sur le serveur cPanel VIP, cette méthode ne serait plus disponible sur la version 4 de Joomla! ?
      Call to undefined method Joomla\Event\Dispatcher::register()
      Quelqu'un peut confirmer, et éventuellement proposer une solution de remplacement ?
      Il s'agit de remplacer plusieurs lignes de ce type :
      Code:
      this->dispatcher->register("plgVmOnAddToCart", $this);
      Merci de vos conseils !
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        Bonjour,

        Après avoir galéré à tester et à enquiquiner les techniciens de PlanetHoster, je viens d'avoir à l'instant une réponse sur le forum LiteSpeed : le plugin LSCache pour Joomla! 4 n'est qu'une version RC, et, alors que la version de Joomla 4 a maintenant 18 mois, il faut encore être patient !

        Je crois qu'on se moque de nous !

        Je passe en réglé, mais bien entendu, ça ne l'est pas...
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          Envoyé par RobertG Voir le message
          Bonjour,

          Après migration d'un site d'un serveur World Pro PlanetHoster vers un serveur n0c, l'activation de LScache provoque dans Virtuemart cette erreur

          Le rapport d'erreurs donne

          Le débogage signale aussi ce que je n'avais jamais vu


          Aucune erreur précédemment. Le site est à jour, en version 8.0 de PHP
          J'ai installé la version "latest" de l'extension LScache, sans effet.

          Qui aurait une idée de la cause et d'une solution ?
          Merci d'avance
          L'erreur "Call to undefined method Joomla\Event\Dispatcher::register()" se produit car la méthode register() n'est plus disponible dans Joomla 4.0 et a été remplacée par la méthode addListener()

          Code:
          $this->getDispatcher()->addListener($methodName, [$this, $methodName]);
          Bien que le plugin litespeed soit mis à jour et fonctionnent bien sous joomla4, les éléments tiers intégrés dans le plugin comme le fichier com_virtuemart.php n'ont pas fait l'objet de test ou de remontée des utilisateurs. Sans doute qu'il n'y a pas assez de testeur qui utilisent joomla 4 + virtuemart pour joomla 4 + litespeed cache

          En ce qui concerne le fichier com_virtuemart.php, le code utilisant la méthode register() devra donc être modifié pour utiliser la méthode addListener() à la place.

          Je suis désolé de ta galère mais je t'invite à faire remonter le bug avec ce détail auprès des dev de litespeed.
          Dernière édition par daneel à 09/03/2023, 14h45
          Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

          Commentaire


          • #6
            Merci Yann, mais c'est ce que j'ai fait, avec la réponse ci-dessus : leur plugin est en version RC, dix-huit mois après la parution de la version 4 de Joomla!, et on me demande d'attendre.

            Le pire c'est que j'ai signalé l'erreur vendredi dernier, qu'on m'a demandé de pouvoir accéder à un site de tests (ils développeraient sans leur propre site de tests ?), ce que je leur ai donné samedi, avec les infos d'accès en super utilisateur.
            Samedi, après avoir vu mon sujet sur leur forum, un autre utilisateur a ouvert une "issue" sur leur page LSCache Github sans aucune réponse de leur part.

            Et ce matin, sur ce forum, donc près d'une semaine après l'ouverture du sujet, un message du staff laissant entendre que je n'avais pas répondu à leur demande d'accès...
            N'auraient-ils pas pu se contenter de répondre d'emblée que la partie VirtueMart ne serait pas mise à jour dans l'immédiat ? même si ça me paraît aberrant qu'on puisse ne as avoir un site dédié aux tests des différents plugins et addons pour extensions tierces.

            Par ailleurs, ils me disent
            The latest version of the cache plugin for Joomla 4 is an RC build. This means that this plugin is not yet fully ready for Joomla 4. However, you can find this information in the plugin information.
            Or dans la doc du plugin, je n'ai trouvé nulle part de mention que le plugin n'est qu'en version RC pour J4...
            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

            Commentaire


            • #7
              ok, je ne sais pas qui t'as répondu mais je pense que c'est un membre de la communauté et non des dev. Bref, ce n'est pas grave.

              Je vais travailler sur le plugin pour ajouter un de mes composant mais j'en profiterai pour faire une session avec vm (à moins que tu me donne un accès en pm à une version de test).
              Le correctif n'est pas difficile, j'en profiterai pour faire un fork avec quelques options supplémentaires car pas de raison de pas profiter des dernières avancés technique combiné avec ce cache.

              je te tiens au courant rapidement.

              Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

              Commentaire


              • #8
                En raison de ce problème avec VM, ou pour une autre indéterminée, j'ai eu brutalement un problème d'impossibilité de connexion au site, en ligne chez PlanetHoster en n0c Pro. Ou quand la connexion était imposible, c'était la déconnexion qui l'était. J'ai tout vidé, réinstallé, sans mieux. Le vidage complet du dossier lscache a temporairement permis d'accéder à l'administration.
                Le changement de nom de sous-domaine a permis de reprendre la main, mais très vite, le problème est réapparu, avec affichage par exemple de la page de connexion utilisant le nom donné à la version précédente du site.
                Bref, entre ces incidents particulièrement gênants et le silence de LiteSpeed, il n'y avait aucune raison pour que je continue à ennuyer PlanetHoster pour trouver une solution, et j'ai donc supprimé le site devenu inutile, puisqu'inaccessible.
                "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                Commentaire


                • #9
                  Envoyé par RobertG Voir le message
                  Bref, entre ces incidents particulièrement gênants et le silence de LiteSpeed, il n'y avait aucune raison pour que je continue à ennuyer PlanetHoster pour trouver une solution, et j'ai donc supprimé le site devenu inutile, puisqu'inaccessible.
                  ok, ce n'est pas grave, j'ai d'ailleurs plusieurs composants qui nécessitent un réglage avec lscache donc ce sera pour moi, l'occasion de revenir sur virtuemart.
                  Je fais toujours du e-commerce mais moins sur vm, j'aime beaucoup le travail de Valérie et si cela peut aider, ce sera avec plaisir.

                  Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                  Commentaire


                  • #10
                    Pour info, Yann, en fin de compte un développeur est intervenu et a pu corriger :

                    Le pack "latest", toujours sur Github, est à tester.
                    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                    Commentaire


                    • #11
                      Envoyé par RobertG Voir le message
                      Pour info, Yann, en fin de compte un développeur est intervenu et a pu corriger :

                      Le pack "latest", toujours sur Github, est à tester.
                      ah et bien c'est cool, c'est exactement ce que j'ai indiqué ce midi dans cette discussion.

                      Tu pourras également nous tenir au courant si tu as l'occasion de tester à nouveau. Merci !
                      Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                      Commentaire


                      • #12
                        J'ai testé et il n'y a plus cette erreur, bien sûr.

                        En revanche, il semble y avoir un gros souci entre Virtuemart et LIteSpeed car, même avec LSCache désinstallé, caches vidés, l'insertion d'une image dans une fiche de produit déclenche une erreur 403, et aucune info n'apparaît dans le pare-feu WAF de PlanetHoster.
                        J'ai fait le test sur mon propre serveur et confirmé ce comportement.
                        Sur un serveur sans LiteSpeed, chez un autre hébergeur, pas de blocage.
                        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                        Commentaire


                        • #13
                          Envoyé par RobertG Voir le message
                          J'ai testé et il n'y a plus cette erreur, bien sûr.

                          En revanche, il semble y avoir un gros souci entre Virtuemart et LIteSpeed car, même avec LSCache désinstallé, caches vidés, l'insertion d'une image dans une fiche de produit déclenche une erreur 403, et aucune info n'apparaît dans le pare-feu WAF de PlanetHoster.
                          J'ai fait le test sur mon propre serveur et confirmé ce comportement.
                          Sur un serveur sans LiteSpeed, chez un autre hébergeur, pas de blocage.
                          Bonjour

                          RobertG

                          Exceptionnellement ce matin, je viens de tester Virtuemart pour Joomla 4
                          avec la version de php 8.1 et sur serveur litespeed configuration standard.

                          Je n'ai pas de soucis quand le plugin lscache est inactif, je peux insérer une ou plusieurs images sans problème.

                          Toutefois, j'ai corrigé un petit bug dans vm :
                          /administrator/components/com_virtuemart/helpers/img2thumb.php

                          j'ai remplacé
                          $newysize = (int)$newysize;
                          par $newysize = (int) round($newysize);
                          pour fonctionner correctement avec php 8.1,
                          cela permet d'arrondir la valeur en virgule flottante à l'entier le plus proche avant de la convertir en entier.

                          il y a beaucoup d'éléments de code qui devront être remplacés car cela ne fonctionnera plus avec les prochaines versions de php
                          et provoque beaucoup d'alertes... mais au delà tout me semble correct si on met le rapport d'erreur à aucun dans la configuration de Joomla.
                          ( je n'ai pas testé plus loin, juste naviguer à travers les exemples, ajouter et editer un produit avec images).



                          Pour le problème du plugin lscache à l'enregistrement du produit, c'est avec le trigger "plgVmAfterStoreProduct"

                          plugins\system\lscache\components\com_virtuemart.p hp
                          il faut remplacer dans le fichier "com_virtuemart.php" (encore lui!!) du plugin lscache, à la ligne 82 :

                          Code PHP:
                          public function plgVmAfterStoreProduct($data$product_data
                          par

                          Code PHP:
                          public function plgVmAfterStoreProduct($product_data
                          Pour t'expliquer, le serveur n'est pas en cause et litespeed fonctionne malgré tout.

                          Simplement, le plugin intercepte des moments comme l'enregistrement de produit sous virtuemart pour effectuer une purge des données dans le cache
                          afin que les images soient actualisées à la fin de l'enregistrement. Bien que le trigger dans vm définisse deux variables dans product.php,
                          il n'y en a qu'une qui est transmise à cet évenement. Je poserai la question du pourquoi au développeur de virtuemart.

                          Virtuemart est en sous-effectif en terme de contributeur et de développeur, il évolue cependant à son rythme sous joomla 4.
                          Je te laisse faire le calcul de probabilité d'avoir un développeur sous joomla 4 qui utilise virtuemart et litespeed ou de quelqu'un qui s'intéresse à cela.

                          Heureusement, ce n'est pas non plus irrémédiable donc je suis heureux de pouvoir t'aider et te répondre au mieux.
                          Pour moi, ce sera réglé quand tu auras fait tes tests de ton coté avec la même configuration.

                          Au besoin, si tu as toujours l'erreur à l'enregistrement, il faudra voir avec ton hébergeur et je veux bien être en contact si le dialogue devient compliqué.

                          Quand tu feras tes tests, essaye de voir si possible chaque moment où le plugin effectue une purge, c'est à dire chaque trigger dans le fichier vm du plugin;
                          • ajout d'un produit dans le panier (plgVmOnAddToCart)
                          • suppression du produit dans le panier (plgVmOnRemoveFromCart)
                          • Mise à jour des données du panier ( plgVmOnUpdateCart )
                          • Enregistrement du produit ( plgVmAfterStoreProduct )
                          • Suppression du produit ( plgVmOnDeleteProduct )
                          • Enregistrement vendeur ( plgVmAfterVendorStore )
                          • Confirmation commande ( plgVmConfirmedOrder )
                          • Purge du contenu, produit, catégorie et vendeur ( onPurgeContent )
                          etc...

                          A noter que j'ai utilisé les données de demo de vm ainsi que la traduction (qui est à revoir...).
                          J'ai vérifié les droits des repertoires dans la configuration de vm comme c'est indiqué et tout est bon.

                          php 8.1 s'est généralisé sur mes serveurs litespeed et j'élimine l'obsolescence du code sur la plupart des extensions que j'utilise
                          (je fais aussi une selection ultra rigoureuse des extensions tierces pour éviter une surcharge de travail inutile) cependant il y a des moments où
                          je dois reprendre le code voir l'adapter et je commence à avoir une certaine habitude... C'est le temps qui me manque.

                          Dernière édition par daneel à 10/03/2023, 06h41
                          RobertG aime ceci.
                          Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                          Commentaire


                          • #14
                            Merci Yann, je vais essayer de digérer tout ça.

                            Les erreurs se manifestent sur deux serveurs comparables, l'un en PHP 8.0, l'autre en 8.1
                            Sur celui en production, le plugin a été complètement désinstallé, le dossier lscache vidé, le cache de Joomla! (aucun cache en plus de celui "out of the box".) et les erreurs

                            Ce qui me surprend, c'est qu'il semblerait que chez PlanetHoster il n'y ait pas d'autre site en J4 et Virtuemart, où ces erreur auraient été constatées.
                            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                            Commentaire


                            • #15
                              Quand tu parles de "serveur litespeed configuration standard", c'est une version Entreprise ?

                              Je viens de recommencer des tests sur le site de production où le plugin a été désinstallé, et l'erreur 403 persiste. Il est en version 8.0 de PHP. Et toujours ce blocage de l'import d'image.
                              Même chose sur mon serveur en PHP 8.1, LSCache ayant été désactivé directement dans la gestion des extensions. Sur ce site, maréinstallation du plugin et la publication de ses éléments ne change rien, toujours cette erreur 403.
                              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X