Appel aux classes Joomla! 4

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

  • Pour compléter ma précédente réponse, ici le début du code de cette fonction qui, à la fin, renvoie aux fonctions importGedcom ou exportGedcom :
    Code:
    function HandleResponseGedcom(type, response) {
        var curmsg = document.getElementById('procmsg').innerHTML;
    
        try { var r = JSON.decode(response); }
        catch(err) {        
            document.getElementById('procmsg').innerHTML = curmsg + '<br />' + response;
            alert('An error occured while processing GedCom.');
        }    
        if ((r) && (r.status)) {
            if (r.msg != null) {
                document.getElementById('procmsg').innerHTML = curmsg + '<br />' + r.msg;
            }
    
            if (r.status == 'stop') {            
                document.getElementById('head_process').style.display  = 'none';
                document.getElementById('head_finished').style.display = 'block';
            }
    
            if (r.status == 'error') {
                document.getElementById('head_process').style.display  = 'none';
                document.getElementById('head_error').style.display    = 'block';
            }
    
            if (r.status != 'stop') {
                if (r.start) {
                    document.getElementById('start_' + r.id).value = r.start;
                }
                if (r.current) {
                    document.getElementById('current_' + r.id).value = r.current;
                }
    
                if (r.persons > 0) {
                    document.getElementById('l_persons_' + r.id).style.display = 'block';
                    document.getElementById('persons_' + r.id).value = r.persons;
                }
    
                if (r.families > 0) {
                    document.getElementById('l_families_' + r.id).style.display = 'block';
                    document.getElementById('families_' + r.id).value = r.families;
                }
    Comme je l'ai dit, et starter866 aussi, la console nous signale que "send" n'est pas une fonction dans "function importGedcom()", sans aucun message d'erreur au moment de la tentative d'import des données du fichier texte, ce qui pour moi voudrait dire qu'on est immédiatement éjecté de cette fonction JS d'import, expliquant l'absence de passage par la gestion "onfailure" et l'alerte qui devrait apparaître. D'ailleurs une alerte ou un message à faire afficher dans la console comme l'a proposé garstud, placé au début de la fonction importGedcom ne renvoie strictement rien.

    Complément : si dans function importGedcom() je mets une alerte au début, contrairement à ce que j'avais précédemment dit, le message s'affiche bien. Par contre, le même message dans HandleResponseGedcom ne s'affiche pas, ce qui confirme que le blocage se produit dans importGedcom et que ça ne passe pas à .HandleResponseGedcom
    Dernière édition par RobertG à 15/12/2017, 16h47
    "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


    • J'avance !
      Apr_ès avoir remplacé la fonction par :
      J'ai maintenant cette erreur :
      string(3) "new" {"id":7,"start":"17:16:24","current":"17:16:24","e nd":null,"cursor":0,"persons":0,"families":0,"sour ces":0,"repos":0,"notes":0,"docs":0,"unknown":0,"j app_ids":[],"status":"error","msg":"D\u00e9but du chargement des donn\u00e9es du fichier source Gedcom : id = 7
      Fichier Gedcom non trouv\u00e9 : (\/home\/www\/sitestests\/test4\/gedtmp\/exemple.ged)"}
      Le fichier n'est pas trouvé, alors qu'il est bien à "home\www\sitestests\test4\gedtmp\exemple.ged) ". Reste donc à trouver pourquoi !
      "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


      • Bon, pour le fichier pas trouvé, c'était ma faute : erreur de saisie d'un nom dans les paramètres...
        Mais maintenant qu'il trouve bien le fichier, impossible de savoir pourquoi il ne l'importe pas et continue à tourner en rond sans rien faite.
        Je suis donc maintenant dans la "function process($part)" du fichier "helpers/jt_gedcomfile2.php", et les "enqueueMessage" placés dans cette fonction ne s'affichent 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 et sites perso chez PlanetHoster + sites gérés chez PHPNET, 1and1 et OVH

        Commentaire


        • Tu as remplacé la fonction "send" par quoi ? je ne trouve rien dans ce sens.

          Code:
           les "enqueueMessage" placés dans cette fonction ne s'affichent pas
          .

          Donc la fonction ne serait pas exécutée ?

          Commentaire


          • Code:
            function importGedcom() {
            
                $.ajax({
                    url: 'index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component',
                    type: 'get',
                    failure: function(xhr) {
                        alert('Error occured for url: ' + url);
                    },
                    success: function(response) {
                            HandleResponseGedcom('import', response);                
                    }
                });
                /*    var myRequest = new Request({
                    url: 'index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component',
                    method: 'get',
                    onFailure: function(xhr) {
                        alert('Error occured for url: ' + url);
                    },
                    onComplete: function(response) {
                            HandleResponseGedcom('import', response);                
                    }
                }).send();*/
            }
            Les problèmes se produisent maintenant plus loin ! Lors de la lecture du GedCom exemple d'Heredis, les infos du premier personnage sont bien lues (mais pas encore enregistrées dans la base), mais quand on arrive à la ligne du deuxième personnage "0 @I2@ INDI", ça plante et pour le moment, je n'arrive pas à en trouver la raison.
            Peut-être est-ce dans HandleResponseGedcom ? Je me demande ce que reçoit au juste la fonction, j'ai l'impression qu'il peut y avoir des éléments polluants...
            En tout cas, c'est au niveau du JSON.decode que ça se passe, une erreur est renvoyée :
            try { var r = JSON.decode(response);}
            "JSON.decode is not a function" !!!
            Dernière édition par RobertG à 16/12/2017, 12h14
            "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


            • J'ai mis ton code, mais je n'ai aucune erreur dans la console.

              Charge en boucle uniquement

              Commentaire


              • Je pense que c'est normal, une erreur plus loin doit éjecter sans passer par l'import ni revenir à la fin de la fonction qui signalerait la fin du traitement.

                J'essaie de trouver par quoi remplacer "JSON.decode" qui est spécifique à Mootools par un équivalent JQuery.
                "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


                • Précisions. Pour le premier enregistrement, je récupère par lecture du GedCom ceci (c'est ainsi que Joaktree me liste la "response" passée à HandelResponseGedcom, mais ça ressemble à ce qu'un "var_dump" récupère...) :
                  array(8) {
                  [0]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(4) "NAME"
                  ["value"]=>
                  string(13) "Louis/ABRIAL/"
                  }
                  [1]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "2"
                  ["tag"]=>
                  string(4) "GIVN"
                  ["value"]=>
                  string(5) "Louis"
                  }
                  [2]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "2"
                  ["tag"]=>
                  string(4) "SURN"
                  ["value"]=>
                  string(6) "ABRIAL"
                  }
                  [3]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(3) "SEX"
                  ["value"]=>
                  string(1) "M"
                  }
                  [4]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(4) "OCCU"
                  ["value"]=>
                  string(22) "Maire de Saint-Vallier"
                  }
                  [5]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(4) "SIGN"
                  ["value"]=>
                  string(3) "YES"
                  }
                  [6]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(4) "_SEC"
                  ["value"]=>
                  string(3) "YES"
                  }
                  [7]=>
                  array(4) {
                  ["object_id"]=>
                  string(2) "I1"
                  ["level"]=>
                  string(1) "1"
                  ["tag"]=>
                  string(4) "_FIL"
                  ["value"]=>
                  string(16) "LEGITIMATE_CHILD"
                  }
                  }
                  Et si je remplace "JSON.decode" qu'utilisait le code avec Mootools par JSON.parse de jQuery, j'ai cette erreur :
                  unexpected character at line 1 column 1 of the JSON data
                  Autre chose ! si je supprime un var_dump je ne sais plus où pour le moment, "response" revient vide...
                  "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


                  • Après moult recherches et essais avec Chrome à la place de Firefox, j'ai réussi à savoir que l'url appelée dans le JS génère une erreur (0 Call to a member function getError() on null), au niveau de la ligne "$items =" de "views/jt_import_gedcom/view.raw.php", si j'en crois le débogage
                    public function display($tpl = null)
                    {
                    $items = $this->get( 'Gedcom' );
                    Juste pour compléter, je n'ai pas d'erreur en version 3.9.0dev et PHP 7.2 (la version 4.0dev tourne aussi en 7.2)
                    Dernière édition par RobertG à 16/12/2017, 18h25
                    "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


                    • de ce que je comprends,
                      Code:
                      $items = $this->get( 'Gedcom' );
                      appelle la fonction getGedcom dans \administrator\components\com_joaktree\models\jt_i mport_gedcom.php.

                      Commentaire


                      • Une question.

                        On trouve dans ce fichier (jt_import_gedcom.php)

                        Code:
                        $query = $this->_db->getQuery(true);
                        et
                        Code:
                        $this->_db->setQuery( $query );
                        et dans les composants natif joomla4 (BanerModel.php par exemple)

                        Code:
                        $query = $db->getQuery(true)
                        et
                        Code:
                        $db->setQuery($query);
                        Es ce la même chose ?

                        Commentaire


                        • C'est à la fois la même chose et pas... J'aurais du mal à t'expliquer, $this ne pouvant pas être utilisé en toutes circonstances.
                          "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


                          • Pour l'instant, le JS ne semble plus poser de problème puisque ce cosole.log affiche bien "réponse" dans cette fonction, mais le contenu de "response" est vide" :
                            function HandleResponseGedcom(type, response) {

                            console.log(response + ' réponse');
                            Donc soit c'est vraiment vide, soit j'ai laissé un "return" quelque part... Je suis près de craquer !
                            "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


                            • Je ne te suis plus là.

                              Code:
                              soit j'ai laissé un "return" quelque part
                              Pourquoi ? tu en as supprimé ?

                              Commentaire


                              • Pour essayer de savoir où ça passe et où ça ne passe plus, j'avais ajouté des "return;" qui me permettaient de faire afficher des infos avec "var_dump", avec le risque de laisser continuer le code sans avoir récupéré les données. Mais en supprimant tous ces points d'arrêt, je n'ai plus du tout de passage dans le JS (aucun "alert" ou "console.log" ne s'affiche) et ça reste sur la page de chargement comme avant que je cherche où ça pouvait coincer
                                "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

                                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