Appel aux classes Joomla! 4

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

  • Code:
    appelle la fonction getGedcom dans \administrator\components\com_joaktree\models\jt_i mport_gedcom.php.
    J'ai l'impréssion que c'est cette fonction qui bloque.

    Code:
    public function getGedcom() {
            $canDo    = JoaktreeHelper::getActions();
            $procObject = $this->getProcessObject();
    
            if (($canDo->get('core.create')) && ($canDo->get('core.edit'))) {    
    
                switch ($procObject->status) {
                    case 'new':
                        $procObject->start = strftime('%H:%M:%S');
                        $procObject->msg = JText::sprintf('JTPROCESS_START_MSG', $procObject->id);
    devrait afficher l'heure de debut du traitement et le message de la boite de dialogue

    Cliquez sur l'image pour l'afficher en taille normale

Nom : 1.PNG 
Affichages : 1 
Taille : 98,7 Ko 
ID : 1972090

    Commentaire


    • Bonsoir,
      Pour les convertions en jQuery, n'utilisé que le $ si vous êtes dans une fonction anonyme, sinon il faut utiliser jQuery
      Tu as un exemple ici http://sametmax.com/la-fonction-anon...ript-function/ pour isoler les valeur et inclure le $.
      Pour l'ajax le $.get est plus simple que le $.ajax mais la structure est différente.
      Mais idéalement, il faudrait ajouter un namespace pour ton composant en javascript. par exemple pour mon composant com_vmbepro, j'utilise un namespace vmbepro, com_virtuemart utilise virtuemart, mais bon cela exige pas mal de modif dans ton code javascript.
      http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
      http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

      Commentaire


      • Merci de ces conseils !
        Le problème est que le code est celui de Niels van Dantzig et qu'il m'est très difficile de suivre le cheminement pour trouver où on est éjecté sans message.
        Avec des points d'arrêt (de simples break ou return), j'ai bien mes messages alert ou console.log dans importGedcom du JS, avec des données vides arrivant dans la fonction JS de traitement HandleResponseGedcom, vides peut-être à cause de ces arrêts, mais dès que je désactive ces points je n'ai plus rien dans la console, comme si quelque chose vidait tout, et je ne sais donc pas si les données parviennent aux fonctions JS.
        Je voulais utiliser JDump, pour avoir peut-être plus d'infos malgré le blocage d'affichage mais il n'est pas encore compatible J! 4 (comme il a été mis à jour il y a un mois environ, j'espérais...) et je n'ai pas regardé ce qui serait à modifier dans son code.

        Pour revenir au code cité par starter866, si je place un arrêt juste après ce code, pour voir ce que renvoie $procObject->status, j'ai bien "new", et l'affichage devrait se faire mais ne se fait pas, ce qui veut dire qu'il y a éjection peu après. Mais où ?
        "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 hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

        Commentaire


        • Bon, j'ai mis en pause l'adaptation de Jokatree et essayé de rendre JDump 1.2.22 compatible avec la version 4 et PHP 7.2 (des tas de JRequest à changer).
          Apparemment, plus d'erreur ni sur le plugin n sur le composant, sauf un warning sur ce "count" : "Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/sitestests/test4/plugins/system/dump/dump.php on line 45"
          La ligne en cause est la dernière :
          Code:
              function onAfterRender() {
                 $mainframe = JFactory::getApplication(); //$option = JRequest::getCmd('option');
                 $option = JFactory::getApplication()->input->get('option');
          
                  if($option == 'com_dump'){
                      return;
                  }
          
                  // settings from config.xml
                  $dumpConfig = JComponentHelper::getParams( 'com_dump' );
                  $autopopup  = $dumpConfig->get( 'autopopup', 1 );
          
                  $userstate = $mainframe->getUserState( 'dump.nodes' );
                  $cnt_dumps  = count( $userstate );
          Je ne comprends pas pourquoi apparaît ce warning.
          "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 hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

          Commentaire


          • http://php.net/manual/en/function.count.php

            Commentaire


            • Merci, mais en fait, quand on ouvre le plugin pour le paramétrer (simplement l'activer), "$userstate " revient null, d'où l'erreur. En gérant cela, plus de warning.
              Il faudra que je voie ensuite à l'usage.
              Et surtout, j'espère que ça me permettra d'avoir un suivi de l'avancement du code.
              "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 hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

              Commentaire


              • En tentant d'importer un gedcom, la console m'indique
                Code:
                HTTP500: ERREUR DE SERVEUR. Le serveur ne peut pas exécuter la requête, car il a rencontré une condition inattendue. (XHR)GET - administrator/index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component
                et si j'appelle dans le navigateur
                administrator/index.php?option=com_joaktree&view=jt_import_gedco m&format=raw&tmpl=component

                J'obtiens
                Code:
                0 Call to undefined method Joomla\Database\Mysqli\MysqliDriver::query()

                Commentaire


                • Après une longue pause, je reviens sur mes tests qui plantent au niveau du JavaScript, et je ne trouve pas de solution.
                  Dans le fichier d'import l'appel est correct :
                  Code:
                  jQuery(document).ready(function(){
                      console.log("DOM est ready pour exec du JS (views/jt_import_gedcom/tmpl/default)");
                      try {importGedcom();}
                      catch (err) {
                          console.log('An error occured while importGedcom');
                      }
                      console.log("traitement terminé (views/jt_import_gedcom/tmpl/default)");
                  });
                  Dans le JS, j'ai
                  Code:
                  function importGedcom() {
                              console.log('function importGedCom');
                  
                      $.ajax({
                          url: 'index.php?option=com_joaktree&view=jt_import_gedcom&format=raw&tmpl=component',
                          type: 'get',
                          fail: function(xhr) {
                              alert('Error occured for url: ' + url);
                          },
                          success: function(response) {
                                  console.log('data : ' + response);
                                  HandleResponseGedcom('import', response);
                                  console.log('suite import');                
                          }
                      });
                  }
                  Quand je lance l'import, j'ai immédiatement
                  DOM est ready pour exec du JS (views/jt_import_gedcom/tmpl/default)
                  function importGedCom
                  traitement terminé (views/jt_import_gedcom/tmpl/default)
                  Donc on passe bien dans la fonction jQuery, mais elle n'intercepte pas d'erreur. Le plantage survient donc dans la partie $.ajax où on ne passe ni dans fail, ni dans success, et je ne trouve pas où se produit l'erreur.

                  Si j'appelle "index.php?option=com_joaktree&view=jt_import_ gedc om&format=raw&tmpl=component", j'ai cette réponse dont j'imagine (à tort ou à raison) que c'est faute de données qu'elle apparaît :
                  0 Call to a member function getError() on null
                  A moins que ce soit le fichier d'import qui ne transmette rien à la fonction JS. Pourtant, il me semble que j'avais testé cette récupération des infos dans le fichier GedCom...

                  J'oubliais : j'ai vidé les logs d'accès et d'erreur sur le serveur, puis tenté un nouvel import, mais le serveur n'écrit rien dans ces fichiers à ce moment !
                  Dernière édition par RobertG à 18/02/2018, 16h59
                  "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 hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

                  Commentaire


                  • Bonjour RoberG

                    Si j'appelle "index.php?option=com_joaktree&view=jt_import_ gedc om&format=raw&tmpl=component", j'ai cette réponse dont j'imagine (à tort ou à raison) que c'est faute de données qu'elle apparaît :

                    0 Call to a member function getError() on null


                    Dans la console de firefox:

                    TypeError: i.src.match(...) is null
                    [En savoir plus]
                    core.min.js:1:9337
                    Dans celle d'IE:
                    SCRIPT5007: SCRIPT5007:
                    Unable to get property '0' of undefined or null reference
                    core.min.js (1,9335)

                    Commentaire


                    • Bonjour, hello,

                      I'm sorry that I cannot write you in French. I am looking for a solution for the Joaktree extension. I understood that the original developer stopped the development some time ago but that RobertG resumed the development. Is this correct and is it possible to obtain a version of Joaktree that runs on php 7.2 (or 7.1) and Joomla 3.9 (and hopefully J.4 in the future)?

                      Kind regard,

                      Frits Jongbloets
                      (yes, another Joomler called Frits from the Netherlands)

                      Commentaire


                      • Hello Frits,
                        You actually can download that version here https://www.joomxtensions.com/images...r_20180410.zip
                        It works on 3.8 and 3.9, probably also 3.10 versions of Joomla!, and PHP 7.2.
                        But It can’t no more geocode locations with Google (it could not with OpenStreetmap for a while), because I think Google changed recently the address for geocoding and transform locations to latitude and longitude. I didn’t find how to solve this problem.
                        Joaktree doesn’t work with Joomla! 4 alpha because a JavaScript to import from a GedCom file or export data fails now.
                        So actually you can import your GedCom in Joomla! 3 but not geocode the locations and not use maps, and I think Joaktree will never work on Joomla! 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 hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

                        Commentaire


                        • Hi RobertG, bonjour,

                          Thanks for your help. I've downloaded the extension and installed it on a develop copy of the site that runs on php 7. It seems to work fine, yet I've asked the owner of the site to take a closer look at it before we put it on the live site (I have a web development agency and this is the site of a customer).

                          As far as I know we do not use Google maps so that won't be a problem. I heard that Google have been changing their api recently but I'm afraid that I cannot help you to solve any issues.

                          And as for Joomla 4, well, we'll see. I think we are lucky to have it running on php 7.


                          Kind regards, Frits




                          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
                          Travaille ...
                          X