Joomla 4 - préparation à la migration - migrer une extension

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

  • [RÉGLÉ] Joomla 4 - préparation à la migration - migrer une extension

    Salut

    j'utilise une extension GPXTrackMap (https://software.frankingermann.de; https://extensions.joomla.org/extension/gpxtrackmap/) sur mon site en J3
    l'auteur (Frank Ingermann que je remercie ici pour cette extension libre et gratuite) ne semble pas décidé à l'adapter pour J4

    => est-il compliqué pour quelqu'un qui ne sait pas coder d'adapter une extension de J3 à J4 ?
    => quelle solution ?

    bonne journée


  • #2
    Bonjour,

    Un plugin est parfois assez simple à migrer, je l'ai fait pour moi quelquefois alors que je ne suis pas codeur.
    La question est de savoir pour quelle raison l'auteur ne compte pas migrer : trop d'autres occupations et/ou complexité de cette migration.
    Rien ne t'empêche de créer un site de teste en J4, de commencer par voir si l'installation fonctionne, puis avec le débogage et le rapport d'erreurs au maximum de voir ce qui a besoin d'être modifié.
    "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
      Je viens de faire le test sous PHP 7.4 : installation OK, ouverture du plugin OK, navigation entre les différents onglets OK, enregistrement OK. Ne le connaissant pas, je n'ai pas testé les modifications des paramètres.
      Je n'ai pas regardé le code lui-même, qui a l'air assez conséquent.

      Seule erreur rencontrée, a priori facile à corriger si on ne veut pas se contenter de masquer les erreurs :
      Deprecated: Array and string offset access syntax with curly braces is deprecated in D:\wamp64\www\testt4\plugins\content\gpxtrackmap\g pxtrackmap.php on line 2272

      En PHP 8, "deprecated" devient une erreur fatale.

      Il faut donc changer la ligne
      if ($path{strlen($path)-1}=='/') // recursively return a temporary file path
      par
      if ($path[strlen($path)-1]=='/') // recursively return a temporary file path
      Il est aussi possible que les fichiers JavaScript ne soient plus conformes, il faut tester.
      Sergio aime ceci.
      "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,

        Comme Robert, j'ai fait quelques essais.

        Il y a effectivement un problème de compatibilité PHP 8 (facilement modifiable).

        Par contre, au niveau Joomla 4, il y a quelques modifications à faire au niveau de la fonction ziptrackfile qui appelle des fonctions "deprecated" et JArchive.

        Cela aussi se corrige facilement en ajoutant, au début de fichier:
        use Joomla\CMS\Filesystem\Folder as JFolder;
        use Joomla\CMS\Filesystem\File as JFile;
        use Joomla\Archive\Archive as JArchive;

        puis, en remplaçant dans la fonction ziptrackfile (vers la ligne 2200) :

        $filesToZip[] = array(
        'data' => file_get_contents($fullgpxpath),
        'name' => basename($filename));
        $archive = new JArchive;
        $zip = $archive->getAdapter('zip');

        Par contre, au niveau des fichiers JS, utilisés pour l'affichage de l'article contenant le plugin, il y a des appels à Mootools, window.addEvent par exemple. Mootools n'est plus supporté en Joomla 4. Donc, il y a encore un peu de travail.

        Pascal
        Tic-Conseil et Sergio aiment ceci.
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          En fait, le plugin fonctionne aussi avec JQuery, mais, comme JQuery n'est pas recommandé par les temps qui courent, il suffit de modifier dans le fichier gpxtrackmap.php la ligne (vers la ligne 670) contenant

          $windoweventcode = "window.addEvent('load',function()"; // mootools

          par

          $windoweventcode = "window.addEventListener('load',function()"; // plus de mootools

          Ensuite, on obtient un bel affichage de la carte dans un article

          Cliquez sur l'image pour l'afficher en taille normale  Nom : track.jpg  Affichages : 0  Taille : 83,5 Ko  ID : 2033997

          Pascal

          PS: les modifications proposées dans le précédent message sont toutes dans le fichier gpxtrackmap.php
          Fichiers joints
          Sergio aime ceci.
          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

          Commentaire


          • #6
            Robert, Pascal : un grand MERCI à vous 2
            ça fonctionne !
            trop content je suis
            je vais pouvoir continuer ma préparation à la migration




            je vais le proposer à l'auteur pour que tout le monde puisse en profiter

            bonne journée

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X