Aide pour passer une fonction javascript de j2.5 à J3

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

  • [Problème] Aide pour passer une fonction javascript de j2.5 à J3

    Bonjour à tous,

    Je sollicite votre expertise afin de m'aider à adapter une fonction dans un composant "maison" suite au passage de J2.5 à J3.3.6

    Je suis parvenu à faire l'essentiel des adaptations, notamment en suivant les recommandations de https://docs.joomla.org/Potential_ba..._Platform_12.2

    Il subsiste cependant une dernière chose qui fait de la résistance et que je ne parviens pas à résoudre.

    Pour résumer, j'ai une page avec une liste de serveurs de jeux affichés et il y a un lien "voir" sur chaque serveur pour afficher les données spécifiques le concernant.

    Le hic, c'est que quand je clique sur ce lien, j'obtiens le message d'erreur suivant :

    Code:
    Fatal error: Call to undefined method RuntimeException::get() in /var/www/libraries/legacy/error/error.php on line 533
    Alors, le contexte de cette ligne 533 dans "error.php" est le suivant :

    Code:
        517          * Echo error handler
        518          * - Echos the error message to output
        519          *
        520          * @param   object  &$error   Exception object to handle
        521          * @param   array   $options  Handler options
        522          *
        523          * @return  object  The exception object
        524          *
        525          * @deprecated  12.1
        526          * @see         JError::raise()
        527          * @since       11.1
        528          */
        529         public static function handleEcho(&$error, $options)
        530         {
        531                 JLog::add('JError::handleEcho() is deprecated.', JLog::WARNING, 'deprecated');
        532
        533                 $level_human = self::translateErrorLevel($error->get('level'));
        534
        535                 // If system debug is set, then output some more information.
        536                 if (defined('JDEBUG'))
    ... la ligne de code où se trouve le lien d'appel se présente comme suit :

    Code:
     echo '<td class="action"><a onclick="voir('.$e->id.')" title="Voir Informations sur le serveur">Voir</a></td>';
    ... et la fonction "voir" comme ceci :

    Code:
     <script type="text/javascript">
         
                  /*function voir(id)
                  {
                          alert('Serveur n°'+id);
                  }*/
         
                  function voir(id)
                  {
                          //$('srvinfos').set('html','');
                          $("#srvinfos").html("");
                          //$('srvinfos').addClass('hidden');
                          $('#srvinfos').addClass('hidden');
                          //$('srvinfos').removeClass('visible');
                          $('#srvinfos').removeClass('visible');
         
         
                          var url = 'index.php?option=com_trackmania&view=&format=raw&task=getInfoSrv';
                          var data = 'ide='+id
                          var request = new Request(
                          {
                                  url:url,
                                  method:'get',
                                  data:data,
                                  onSuccess:function(responseText)
                                  {
                                          if (responseText)
                                          {
                                                  //$('srvinfos').set('html',responseText);
                                                  $("#srvinfos").html(responseText);
                                                  //$('srvinfos').removeClass('hidden');
                                                  $('#srvinfos').removeClass('hidden');
                                                  //$('srvinfos').addClass('visible');
                                                  $('#srvinfos').addClass('visible');
                                          }
                                  }
                          }).send();
                  }
          </script>
    Je présume que le problème se situe là quelque part, le contexte de l'erreur semble indiquer une question de "Deprecated" mais n'étant pas vraiment développeur et ne connaissant pas les langages modernes, je ne parviens pas à le localiser.

    Quelqu'un aurait-il une piste à suggérer pour résoudre ça ?

    Merci de votre aide...

    Adgenodux

  • #2
    Re : Aide pour passer une fonction javascript de j2.5 à J3

    Hello,

    Votre soucis ne semble pas lié au Javascript, mais plutot au code PHP appelé par le JS !
    En regardant le code de Voir(), vous faites un appel AJAX qui appelle une task "getInfoSrv" de com_trackmania.

    Il faut regarder le code de la function getInfoSrv() dans le controleur PHP de com_trackmania, l'erreur est surement la.
    A 1ere vue je tablerais sur un appel a JError qui est déprecié dans Joomla 3 !? a verifier.

    Bonne recherche
    Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
    « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
    c’est parce que nous n’osons pas qu’elles sont difficiles. »
    - Sénèque

    Commentaire


    • #3
      Re : Aide pour passer une fonction javascript de j2.5 à J3

      Bonjour et merci pour votre réponse.

      J'ai déjà apporté des correction suivant le lien mentionné dans mon post et malheureusement le code getInfoServ() ne contient pas de JError.

      J'ai bien essayé de tester le code sur un site de test en ligne alors si l'un précise qu'il n'y a pas d'erreur de syntaxe, un autre, plus avancé, ne sait juste se contenter d'une fonction d'autant que des instructions font références à des éléments externes, joomla notamment.

      Comment pourrais-je voir ce qui cloche dans mes 200 lignes ?

      Merci de votre éclairage...

      Adgenodux

      Commentaire


      • #4
        Re : Aide pour passer une fonction javascript de j2.5 à J3

        Salut,
        le code JS que je vois dans la fonction ... "voir" est du pur Mootools.
        Tu aurais quand même tout intérêt à passer à jQuery, Mootools étant progressivement abandonné en faveur de jQuery dans joomla.

        Et comme c'est une pure requete Ajax, la modif du code n'est pas super compliquée.
        Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

        Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

        Commentaire


        • #5
          Re : Aide pour passer une fonction javascript de j2.5 à J3

          Salut ghazal et merci pour ton message.

          j'ai en effet vu beaucoup d'infos sur l'intégration de pas mal de trucs dans j3 et mon petit composant n'est pas compliqué mais bien que je mette "les mains dedans", je ne suis pas dev donc je ne fais pas trop la différence entre un système ou un autre et à fortiori, le moyen de convertir d'un à l'autre :/

          existerait-il par ex un shéma de conversion qui me permettrait de transposer sans trop de complications ?

          merci pour les précisions...

          Commentaire


          • #6
            Re : Aide pour passer une fonction javascript de j2.5 à J3

            Hmmm ...
            Pas évident si tu débutes pour le JavaScript.
            Re jQuery et Ajax et le passage d'un script Mootools/Ajax à un script jQuery/Ajax, je pense que tu peux t'en sortir avec un peu de logique.
            LA référence jQuery est ici :

            Ajax | jQuery API Documentation


            et fais tourner Firebug à fond.

            existerait-il par ex un shéma de conversion qui me permettrait de transposer sans trop de complications ?
            Hélas, pas de miracle ...
            Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

            Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

            Commentaire


            • #7
              Re : Aide pour passer une fonction javascript de j2.5 à J3

              Resalut,
              tu peux aussi t'inspirer du composant Ajax, présent dans l'admin de joomla
              Using Joomla Ajax Interface - Joomla! Documentation


              Il y a aussi un module de démo :
              Hello-Ajax-World-Module


              Le code dans mod_hello_ajax_world.php peut également t'indiquer la marche à suivre :
              Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

              Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

              Commentaire


              • #8
                Re : Aide pour passer une fonction javascript de j2.5 à J3

                merci pour les conseils et précisions...

                quand je parle de schéma de conversion, c'est dans l'idée de la page des potential backward issues qui donne les infos sur la manière de réécrire le code...

                limite même pour une modification de structure, avec les indications utiles, ce pourrait être encore faisable sans trop de difficultés
                cependant, les mélanges de langages compliquent la distinction à qui n'est pas programmeur et cela implique souvent de devoir faire de front du html/css, php, javascript, ajax et j'en passe :/

                du coup il faut tantôt ne plus faire que ça et c'est précisément parce que la prog est très possessive et ne permet que difficilement de faire d'autres choses que j'avais arrêté il y a longtemps...

                je vais déjà parcourir la doc, merci pour les liens...

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X