Joaktree de nouveau...

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

  • [RÉGLÉ] Joaktree de nouveau...

    Bonjour,

    Il y a un bon moment que je ne m'étais plus occupé de Joaktree faute de pouvoir l'adapter à Joomla! 4, et je me suis lancé ce matin dans des tests sur la dernière version de Joomla! 3.9.23 sous PHP 8, mon but étant que cette extension sans équivalent aille le plus loin possible avec Joomla! 3.10.

    Installation neuve de Joomla!, installation de la version de Joaktree du 25 mars 2020, tout semble aller en attendant les notices, warning et deprecated auxquels je m'attends.


    Même en régressant en PHP 7.2, lorsque je veux créer une nouvelle source GedCom, les boutons d'enregistrement sont inactifs, avec dans la console le message "Uncaught TypeError: document.GetElementById is not a function"
    Le code JS en cause est le suivant dans la page :
    <script type="text/javascript">
    Joomla.submitbutton = function(task)
    {
    if (task == 'application.cancel' || document.formvalidator.isValid(document.GetElement ById('application-form'))) {
    alert('');
    Joomla.submitform(task, document.getElementById('application-form'));
    } else {
    alert('');
    }
    }
    </script>
    Il provient de
    Je ne comprends pas pourquoi j'ai cette erreur. Elle ne se produit pas sur le site (J! 3.9.23, PHP 7.4) où je travaillais précédemment et où il y a déjà des données, mais pas non plus une fois que j'ai tout réinitialisé.

    J'ai vu sur l'exemple Helloword un autre code pour la validation
    https://docs.joomla.org/J3.xevelop...ubmitbutton.js
    Dois-je en venir là ?

    En attendant, je vais repartir de zéro, au cas où j'aurais fait une erreur après l'installation...

    Merci de votre aide !
    Robert
    Dernière édition par RobertG à 18/12/2020, 16h02
    "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

  • #2
    Fausse alerte !

    J'ai utilisé l'extension de création de pack de Folcomedia pour en créer un à partir du site où Joaktree ne me pose pas de problème.
    J'ai réinstallé Joomla! et ce pack, l'erreur JS a disparu.
    J'ai pu importer un GedCom exemple d'Heredis qui est mon logiciel de généalogie.

    Reste maintenant qu'il y a pas mal de messages à propos de tableaux revenant vides, de warnings, etc.
    Exemple :
    Warning: Trying to access array offset on value of type null in /home/www/***********/joak8/administrator/components/com_joaktree/controllers/jt_maps.php on line 40
    Même si ce n'est pas bloquant, je vais essayer de corriger.

    Et si quelqu'un avait les compétences, le temps et le courage de tenter de migrer cette extension en compatibilité J! 4, je lui laisserai volontiers prendre la main.
    "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

    Commentaire


    • #3
      Ça me fait penser à Sisyphe et son rocher : tu crois être proche du but et ça repart pour un tour .
      Après Joomla 4 (ou en même temps pour employer une formule à la mode) il y a php 8
      Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
      Confucius

      Commentaire


      • #4
        Pour l'instant, il semble que ça fonctionne correctement sous PHP 8 en masquant les erreurs.
        J'ai fait un premier test aussi avec J! 3.10 et PHP 8, même fonctionnement apparemment correct.
        "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

        Commentaire


        • #5
          Est-ce ce joaktree : https://github.com/joaktree/J3.x. Le gars a quand même abandonné le développement depuis plus de sept ans; cela fait long.

          Tiens, as-tu déjà contacté le gars pour le demander s'il a connaissance d'une personne qui aurait repris le flambeau. Idem, as-tu posté sur le forum joomla.org pour poser la même question concernant la reprise ?

          Christophe (cavo789)
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
          Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
          Mes logiciels OpenSource : https://www.avonture.be

          Commentaire


          • #6
            J'ai eu d'autres discussions sur ce forum depuis que Joomla! 4 a été proposé pour tests en alpha, et sûrement aussi d'autres antérieures, raison du titre de cette discussion.
            J'ai été en relation avec l'auteur initial qui m'avait encouragé, je lui ai fourni il y a presque 3 ans je crois mes modifications pour que Joaktree fonctionne aussi correctement que possible en version 3 de Joomla!, il avait envisagé de reprendre le développement, mais je n'ai plus eu de nouvelles.
            Un autre utilisateur néerlandais m'a demandé le code pour reprendre le développement, mais (un peu comme moi) n'était apparemment intéressé par les corrections de ce dont il avait besoin. Je n'ai plus eu de nouvelles et manifestement, il ne semblait pas décidé, n'étant pas plus codeur que moi, à tenter l'aventure Joomla! 4

            Pour le moment donc, j'essaie de faire en sorte que cette extension, qui n'a aucun équivalent sous Joomla!, puisse durer le plus longtemps possible sous Joomla! 3 au moins pour ses fonctionnalités de base, celles que j'utilise par exemple sur https://joak8.par-robertg.fr qui est ce nouveau site ou https://joaktree.par-robertg.fr (les deux sont à cet instant en PHP 8, Joomla! 3.9.23
            "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

            Commentaire


            • #7
              Bonjour,

              Il semblerait que tout fonctionne sous PHP 8 actuellement. Les modules et plugins que j'avais laissés de côté depuis un moment ont aujourd'hui été vérifiés et modifiés, et ne semblent plus poser de problème. Cette toute dernière version est sur https://joak8.par-robertg.fr/ Joomla! 3.9.23, PHP 8 FPM.

              Le seul problème que je rencontre est l'incapacité d'afficher les images associées aux individus, provenant de la généalogie d'origine, bien qu'apparemment j'aie paramétré ce nouveau site de la même manière que joaktree.par-robertg.fr !
              "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

              Commentaire


              • #8
                Hum ! un "wrong request" apparaît maintenant quand je publie le module "many years ago". Je l'avais eu et ça avait disparu. Je ne comprends pas pourquoi ça revient. Pas plus d'information, le message ne semble pas venir de Joomla! (rien d'autre dans le code source).
                "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                Commentaire


                • #9
                  Bonjour,

                  Cette erreur "wrong request" ne se produit pas en version 7.4 de PHP (à confirmer, quand même), le module signalant seulement qu'il n'y a pas de données à afficher.
                  Mais il semble qu'elle ne renvoie pas de données alors qu'il devrait y en avoir, ce qui pourrait vouloir dire que si l'erreur est automatiquement "oubliée" en PHP 7, elle ne passe pas en 8...
                  Reste donc à trouver ce qui la provoque. La requête étant très complexe, ça ne va pas être simple.
                  "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                  Commentaire


                  • #10
                    J'ai dit une bêtise, le module éphéméride (many years ago) renvoie bien des résultats en PHP 7.4 comme on peut le voir sur https://joak8.rg-conseil.fr
                    La requête devrait donc être correcte.
                    Tout semble fonctionnel sur ce site.
                    Je réutilise les mêmes fichiers après les avoir zippés et importés sur joak8.par-robertg.fr : dès que je passe en PHP8, "wrong request" réapparaît si le module est activé. C'est le seul élément de l'ensemble Joaktree qui bloque...
                    "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                    Commentaire


                    • #11
                      J'ai eu un faux espoir, probablement en mélangeant les sites et en ne regardant pas celui qui était en PHP8
                      J'ai cloné le site pour le tester en local sur WampServer : même erreur que ce soit en MySQLi ou en MySQL PDO
                      "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                      Commentaire


                      • #12
                        Bonjour,

                        Un éclair (de génie ? ), alors que j'étais persuadé que c'était une erreur serveur mais aucun résultat sur Internet concernait le message, j'ai exploré le code de Joaktree et trouvé les endroits où l'auteur initial avait casé ces messages.
                        Pour le moment, je trouve une erreur dans cette fonction
                        Code PHP:
                         static function getDay() {
                        static 
                        $day;

                        if (!isset(
                        $day)) {
                        //Filter
                        $app JFactory::getApplication('site');
                        $tmp1 $app->getUserStateFromRequest('com_joaktree.tmya.day' 'day''''int' );
                        if (isset(
                        $tmp1)) {
                        $tmp2 = (int) $tmp1;

                        if ((
                        $tmp2 == $tmp1) && ($tmp2 >= 0) && ($tmp2 <= 31)) {
                        $day $tmp2;
                        } else {
                        // somehing is wrong
                        die('wrong request);
                        }
                        } else {
                        // Day is not part of request
                        $day = 0;
                        }
                        }

                        return $day;

                        Si je fais aussi afficher la valeur de $tmp1 et $tmp2, la première est vide, la seconde à "0". Idem pour la fonction suivante getMonth()
                        Il me suffit de remplacer le message d'erreur par l'affectation de la valeur 0 ou gérer le fait que $tmp1 revient vide pour que l'erreur disparaisse, mais je ne comprends pas pourquoi $tmp1 = $app->getUserStateFromRequest('com_joaktree.tmya.day' , 'day', '', 'int' ); renvoie une valeur vide sous PHP 8 et pas sous 7.4...

                        Problème réglé pour le moment, en attendant d'en rencontrer d'autres comme le craint lesoutier.
                        Je vais continuer à tester; et si quelqu'un veut tester aussi, je vais faire un pack d'installation avec cette nouvelle version 1.5.4
                        "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                        Commentaire


                        • #13
                          ça fait peur

                          La ligne "$app->getUserStateFromRequest('com_joaktree.tmya.day' , 'day', '', 'int' );" est donc supposée retourner un integer. Le développeur stocke cela dans une variable $toto ($tmp est juste si peu explicite).

                          Puis il converti $toto vers $nestor en forçant une conversion vers un nombre mais euh?, $toto était déjà un nombre.

                          Vite réécrit, code PHP 7:

                          Code:
                           
                          function getDay() : int {
                              $app = JFactory::getApplication('site');
                              $day = $app->getUserStateFromRequest('com_joaktree.tmya.day' , 'day', '', 'int' ) ?? 0;
                              if ($day > 31) {
                                  die("Hey dude, bad day today? Please specify a day number between 1 and 31");
                              }
                              return $day;
                          }
                          Christophe (cavo789)
                          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
                          Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                          Mes logiciels OpenSource : https://www.avonture.be

                          Commentaire


                          • #14
                            Merci Christophe,

                            Le code original a été fait pour 1.5 je crois, puis pour 2.5, donc ça ne date pas d'hier.
                            Je ne sais même pas à quoi servent cette fonction et celle du mois, car même avec ce retour vide, on a bien les bons résultats, en tout cas pour le module qui plantait et dans lequel on peut sélectionner côté site, selon les paramétrages dans l'administration, soit un jour, soit un mois pour afficher les anciens événements.
                            La question est : pourquoi cette valeur revient-elle vide en PHP 8 et pas en PHP 7 ?
                            "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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

                            Commentaire


                            • #15
                              >Le code original a été fait pour 1.5 je crois, puis pour 2.5, donc ça ne date pas d'hier.
                              Oui mais c'est une excuse pour la version de PHP mais pas la qualité du code

                              Note que, je ne sais pas si ton code est comme ça mais l'instruction die() est incorrecte; il manque un single quote à la fin.

                              Ton code plus haut

                              Code:
                              die('wrong request);
                              Essaie le code ci-dessous qui va donc afficher le contenu des variables; tu seras vite fixé.

                              Code:
                              die(sprintf('wrong request [$tmp1=%s] [$tmp2=%s]',$tmp1,$tmp2));
                              Christophe (cavo789)
                              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
                              Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                              Mes logiciels OpenSource : https://www.avonture.be

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X