Appel aux classes Joomla! 4

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

  • #76
    Ce que j'ai trouvé ce matin

    Code:
    Apparently store() inserts a row only if the primary key is not set (e.g parent_id is NULL).
    tu dis:

    Code:
    En mettant une valeur 0 par défaut à ce champ dans la structure de la table #__joaktree_applications,
    Dans quel fichier se fait cette modification ?
    Dernière édition par starter866 à 27/11/2017, 12h58

    Commentaire


    • #77
      Dans la structure de la table #__joaktree_applications champ "asset_id"
      "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


      • #78
        Ok. Ne doit on pas auusi modifier en conséquence le fichier oaktree.script.php ?

        Code:
        // Table joaktree_applications
                    $update_queries[] =
                        'CREATE TABLE IF NOT EXISTS '
                       .'#__joaktree_applications '
                       .'( id               tinyint(4)  unsigned  NOT NULL auto_increment '
                       .', asset_id         int(10)      unsigned NOT NULL '

        Commentaire


        • #79
          Oui, mais ce n'est utile que pour une installation neuve (il faudra voir comment gérer la modification lors d'une mise à jour), et il y aura peut-être d'autres changements à faire a niveau de la structure des tables.
          .', asset_id int(10) unsigned NOT NULL default 0'
          "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


          • #80
            Hier, j'ai vainement cherché où est récupéré le "return $this->_data" de la fonction getData du fichier jt_import_gedcom.php !
            Si j'ai bien compris, ces "data" étant les caractéristiques de la source (dont noms du dossier et du fichier GedCom à importer) doivent être décodés par une fonction en vue de l'import, mais on ne passe jamais par la fonction getGedcom du même fichier jt_import_gedcom.php ni celle de models/jt_applications.php !
            Impossible donc pour l'instant de savoir où le code tourne en boucle sans rien importer et sans générer d'erreur.
            "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


            • #81
              Toujours bloqué sur l'import, j'ai testé ça (ajout des enqueueMessage) dans la partie script de "views/jt_import_gedcom/tmpl/default.php"
              <script>
              window.addEventListener('domready', function() {
              <?php JFactory::getApplication()->enqueueMessage("import gedcom js"); ?>
              importGedcom();
              <?php JFactory::getApplication()->enqueueMessage("fin import gedcom js"); ?>
              });
              </script>
              et j'ai bien dans le pop-up de message
              import gedcom js
              fin import gedcom js
              Donc l'appel du script aboutit, si je ne me trompe.
              Sauf que je ne sais pas où est ce script (renommer "assets/js/joaktree_admin.js" ou la "function importgedCom" qui s'y trouve ne change strictement rien) ou la fonction qui en tient lieu dans un autre fichier...
              "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


              • #82
                Rien n'y fait, même en modifiant le code comme tu dis, rien, même pas les messages.

                Commentaire


                • #83
                  Bonsoir,
                  Attention Robert, tu jongles dangereusement la

                  Petite explication sur le monde barbare du développement Web :
                  On parle de site web en PHP, HTML et JS. Le code PHP est interprété par le serveur pour générer un code HTML/JS qui sera transmis au navigateur .... et la, seulement la, le navigateur interprétera le code HTML ... et le code JS ... si il est correctement appelé dans l'HTML !

                  J’espère que je ne suis pas trop confus. C'est important de bien avoir ce process toujours à l'esprit car avec Joomla, on est dans le cas d'un script PHP, qui génére du HTML, qui va permettre d’exécuter du Javascript .... Arghhhh le trio infernal !

                  Petit exemple pour imager : si tu poses le script JS ci-dessous dans un fichier TMPL PHP, de ton compo, ben vous aurez bien les messages PHP, mais pas la popup JS ! (sic)

                  Code:
                  <script>
                  function willNeverBeCalled() {
                      <?php JFactory::getApplication()->enqueueMessage("msg affiché par PHP, pas par cette fonction JS"); ?>
                      alert("popup jamais appelée");
                      <?php JFactory::getApplication()->enqueueMessage("msg2 affiché par PHP, pas par cette fonction JS"); ?>
                  });
                  </script>
                  P.S. en espérant que cette explication vous évitera d'aller vous pendre ou de jeter l'ordi par la fenêtre
                  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


                  • #84
                    Merci Marc !
                    Si je comprends bien, l'appel de PHP dans ce code "script" empêcherait le code JS d'être interprété ? ou que l'instruction PHP serai utilisée quoi qu'il en soit ?
                    Mais de toutes manières, ce code "enqueueMessage" n'était là que pour voir si ça passait par là, étant donné que je ne trouve pas la moindre trace de ce qui se passe après la récupération des données concernant la "source GedCom" afin d'y importer le contenu du fichier correspondant.
                    Mais en remplaçant ces "enqueueMessage" par des "alert" suite à tes remarques, je n'ai pas d'info, ce qui voudrait donc dire que cette partie de code est ignorée et que ce n'est pas la fonction JS d'importGedcom qui est en réalité appelée... et je suis actuellement totalement incapable de savoir à quelle fonction est renvoyé ce "return $_data" qui est la dernière info récupérée.
                    "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


                    • #85
                      Alors,en fait le code PHP ne bloque pas le JS, c'est juste que quand le serveur transforme le PHP en code HTML il traite les enqueueMsg pour préparer le code HTML qui affichera le message.
                      Les enqueueMsg c'est pratique pour afficher une info, mais cela fonctionne comme une file d'attente d'imprimante : tu en mets autant que tu veux dans ton code et ils vont etre affiché en haut de ta page, dans l'ordre d'appel, lors du prochain affichage de la page sur le navigateur.

                      Cela veut dire qu'utiliser un enqueueMsg pour pister du code JS ne sert a rien, car il ne sera pas executer a l'endroit ou tu l'as placé dans le code JS.
                      Par contre oui, les "alert(...)" ou les "console.log(...)", eux, sont bien executé a l'endroit ou tu les places dans le code JS ... car ce sont des instructions JS
                      Donc si tes alerts JS ne s'affichent pas, Ca veut dire que ce code JS n'est jamais appelé !
                      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


                      • #86
                        Concernant ton probleme d'appel JS, je pense qu'il y a juste un simple soucis sur l'appel de ta fonction.
                        Pour info avec Joomla, on a accès au framework JS "jQuery", il est simple et pratique, donc autant l'utiliser

                        Voici un code fonctionnel pour faire ce que tu veux en JS :

                        Code:
                        <script>
                        // window.addEventListener('domready', function() { ... remplacer cette ligne par :
                        jQuery(document).ready(function(){
                            alert("Le chargement de ma page HTML est terminé dans le navigateur, jQuery me signale que le DOM est ready pour exec du JS");
                            console.log("je piste plus discretement mon code dans la console javascript de mon navigateur ;)");
                        });
                        </script>
                        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


                        • #87
                          Merci Marc !
                          Joaktree utilisait Mootools, ce qui m'a obligé à changer un certain nombre de lignes pour passer à Bootstrap.
                          Pour une des corrections (la création de la source GedCom que j'essaie maintenant d'utiliser pour y importer les données dans sa table), j'ai trouvé que c'était un fichier core de Joomla! qui traitait l'instruction, et je me demande si dans le problème actuel ce n'est pas pareil...
                          J'utilise en effet les enqueueMessage pour essayer de tracer l'ordre dans lequel est lu le code.

                          Ce qui est curieux, c'est que les fonctions "importGedcom" où on devrait passer ne sont pas utilisées, idem sur une version 3.9 alors que l'import y fonctionne correctement.
                          Moi qui ai été habitué pendant des années avec le développement Windows à pouvoir avancer dans le code ligne par ligne pour trouver les erreurs, je suis frustré avec PHP !

                          Pour revenir à ton conseil, si j'utilise :
                          <script>
                          // window.addEventListener('domready', function() { ... remplacer cette ligne par :
                          jQuery(document).ready(function(){
                          importGedcom();
                          alert("Le chargement de ma page HTML est terminé dans le navigateur, jQuery me signale que le DOM est ready pour exec du JS");
                          console.log("je piste plus discretement mon code dans la console javascript de mon navigateur ");
                          });
                          </script>
                          je n'ai pas de message d'alerte, mais si je mets
                          <script>
                          // window.addEventListener('domready', function() { ... remplacer cette ligne par :
                          jQuery(document).ready(function(){

                          alert("Le chargement de ma page HTML est terminé dans le navigateur, jQuery me signale que le DOM est ready pour exec du JS");
                          console.log("je piste plus discretement mon code dans la console javascript de mon navigateur ");
                          importGedcom();
                          });
                          </script>
                          j'ai bien le message avant l'affichage des infos de enqueueMessage, ce qui voudrait dire que la "function importGedcom()" qui est dans le fichier JS est ce qui plante.
                          "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


                          • #88
                            Code:
                            Sauf que je ne sais pas où est ce script (renommer "assets/js/joaktree_admin.js" ou la "function importgedCom" qui s'y trouve ne change strictement rien) ou la fonction qui en tient lieu dans un autre fichier...
                            Effectivement, ce fichier semble ignoré, puisqu'en le renommant, et en affichant les vues ou il est sensé être appelé n'engendre aucune erreur (importer ou exporter gedcom, etc)

                            Commentaire


                            • #89
                              Dans la console j'ai cette erreur:

                              Code:
                              TypeError: (new Request(...)).send is not a function
                              qui semble concerner ceci:

                              Code:
                              function importGedcom() {
                              
                                  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();
                              }

                              Commentaire


                              • #90
                                Ce qui veut dire qu'il faut réécrire ce fichier JS...
                                Dernière édition par RobertG à 02/12/2017, 09h33
                                "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