Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

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

  • #91
    Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

    tu as déjà bien avancé, regarde le verre à moitié plein, et non celui à moitié vide
    Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
    http://www.template-creator.com Outil de création de templates
    Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

    Commentaire


    • #92
      Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

      Je viens de vérifier un truc qui explique sans doute, au moins en partie la complexité de la chose : Niels est passé par un générateur de composants
      Code:
      * @author	Niels van Dantzig
       * @package	Joomla
       * @subpackage	Joaktree
       * @license	GNU/GPL
       *
       * Component for genealogy in Joomla!
       *
       [B]* This component file was created using the Joomla Component Creator by Not Web Design
       * http://www.notwebdesign.com/joomla_component_creator/[/B]
       *
       */
      Le produit existe toujours et il est payant (gratuit pour utilisation avec une seule table, je suppose que c'est de l'humour).
      Je suppose qu'on ne peut pas "remouliner" un composant existant, mais en partant des définitions de tables il doit être possible de regénérer au moins le core de Joaktree. Pour l'instant ce n'est qu'une piste, je ne connais pas l'étendue de ce qui a pu être écrit hors générateur. Puet-être une piste à explorer ?
      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


      • #93
        Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

        Merci à vous deux !

        Le problème est que verre à moitié vide ou à moitié plein, je suis totalement bloqué pour le moment sur des fonctions essentielles de l'extension.
        J'ai remarqué par contre des modifications à faire (taille de champ par exemple pour l'adresse, actuellement limité à 75 caractères, ce qui tronque la subdivision ; possibilité de supprimer par paramétrage cette subdivision lors de la géolocalisation, car elle empêche celle-ci, par exemple avec des infos du style "dans sa maison" ou une adresse non reconnue par Google ou Mapquest).

        J'ai en effet vu qu'au moins une partie du code avait été générée par Component Creator, mais nulle part sur leur site je n'ai vu d'info signalant qu'on pourrait importer un projet existant pour le modifier/corriger. Je leur poserai peut-être la question.
        J'ai contacté un autre développeur, celui de Component Builder, qui m'a confirmé n'avoir pas pour le moment la possibilité d'importer un tel composant, mais a déjà avancé dans cette direction. Pour éventuellement l'aider au débogage le moment venu, il va cependant falloir que j'arrive à m'y retrouver dans ces histoires d'appel statiques ou pas, et autres joyeusetés... et surtout essayer de comprendre l'organisation complète du composant.
        "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


        • #94
          Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

          Je continue à chercher et je tombe sur un nouvel os !

          Reparti d'une version modifiée qui fonctionne bien sur pas mal de choses, je teste l'import d'un Gedcom exemple d'Heredis, et au bout de 199 personnes (traitement par lots de 50), parfois à partir de 49, j'ai ce message que j'ai du mal à analyser !
          Strict Standards: Accessing static property MBJServiceGeocodeOpenstreetmap::$resultSet as non static in /home/www/developpement/newjoaktree/administrator/components/com_joaktree/services/geocode.php on line 127
          La ligne 127 en question "$this->resultSet = $this->setResultSet($xml);" est dans la "public function findLocation(&$data)" faisant ici appel à "public function setResultSet(&$xml)" du fichier services/geocode>/openstreetmap.php (même message si je choisis un géocodage Google).

          Je ne comprends donc pas cet appel non statique à une fonction qui n'est pas déclarée comme statique mais que l'erreur me décrit comme telle !

          Trouvé ! Il y avait cette déclaration au début du fichier geocode.php
          protected static $resultSet = array();
          Une fois cette ligne neutralisée, l'erreur a disparu
          Dernière édition par RobertG à 06/01/2017, 11h48
          "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


          • #95
            Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

            protected static $resultSet = array();
            Une fois cette ligne neutralisée, l'erreur a disparu
            il faudrait plutot la passer en
            protected $resultSet = array();
            est-ce que la classe est déclarée statique ou pas ?
            Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
            http://www.template-creator.com Outil de création de templates
            Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

            Commentaire


            • #96
              Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

              tu peux déjà lire ça


              Comme les méthodes statiques peuvent être appelées sans qu'une instance d'objet n'ai été créée, la pseudo-variable $this n'est pas disponible dans les méthodes déclarées comme statiques.
              L'appel statique de méthodes non-statiques génère une erreur de niveau E_STRICT.
              il y a des exemples
              en gros une classe statique tu l'utilises comme une boite à outil, chaque fonction étant un outil, que tu peux appeler sans l'initialiser
              une classe objet sera utilisée pour créer un objet, que tu utilises tout au long de ton projet et qui contient des données

              c'est simplifié, mais c'est l'idée

              Static
              <?php
              class Foo
              {
              public static $var;

              public static function aStaticMethod() {
              self::$var = 'toto';
              }
              }

              Foo::aStaticMethod();
              ?>
              Objet
              <?php
              class Foo
              {
              public $var;

              public function aStaticMethod() {
              $this->var = 'toto';
              }
              }

              $foo = new Foo();
              $foo->aStaticMethod();
              ?>
              Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
              http://www.template-creator.com Outil de création de templates
              Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

              Commentaire


              • #97
                Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                Merci Cédric,

                Les fonctions et classes concernées ne sont pas déclarées en statique, c'est seulement la variable qui l'est dans le fichier geocode.php

                Il faut maintenant que j'améliore la localisation, car la subdivision, qui est la dernière valeur du champ "value" de la table joaktree_location, empêche souvent cette localisation.

                Et une fois ça réglé, je ne serai pas au bout de mes peines !
                "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


                • #98
                  Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                  Grrrr !
                  J'ai trouvé comment paramétrer le choix pour la cartographie (pas dans un xml mais dans un php) et ça fonctionne, j'ai bien l'enregistrement oui/non soit 1/0 dans la ligne com_joaktree de la table #__extensions.
                  Mais dans le fichier où j'ai besoin de récupérer cette valeur, j'ai systématiquement la valeur par défaut, soit 1, pas la valeur réelle qui est à 0 dans la base :
                  $g_params = JComponentHelper::getParams('com_joaktree') ;
                  $IndSubdiv = $g_params->get('indsubdiv', true);
                  Du coup, mon paramètre ne sert à rien...
                  Qu'aurais-je oublié ?

                  Pour info, les paramètres renvoyés par getParams sont :
                  {"siteedit":"1","indCookies":"0","processStep":"1" ,"procStepSize":"50","indArticleLink":"9","service s":"{"geocode":"google","interactivemap":"0","stat icmap":"google","googleAPIkey":"***************-g6sQTYq-L20","indHttps":"0","country":"","language":"","em ail":"","maxloadsize":"100","indsubdiv":"0"}"}
                  où indsubdiv est bien à "0", mais l'extraction de indsubdiv prend la valeur par défaut.
                  Dernière édition par RobertG à 06/01/2017, 18h39
                  "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


                  • #99
                    Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                    Je ne comprends vraiment pas quelle erreur je peux faire dans cette recherche.
                    En simplifiant,
                    if (JComponentHelper::getParams('com_joaktree')->get('indsubdiv') == 0) {
                    j'ai toujours ce paramètre qui revient à "0", donc ce "if" est validé, alors qu'il est bien à "1" dans la base après que j'ai choisi "oui" pour l'utilisation de la subbdivision pour la localisation des lieux, où getParams('com_joaktree') me renvoie bien
                    {"siteedit":"1","indCookies":"0","processStep": "1" ,"procStepSize":"50","indArticleLink":"9","serv ice s":"{"geocode":"google","interactivemap":"0","s tat icmap":"google","googleAPIkey":"***************-g6sQTYq-L20","indHttps":"0","country":"","language":"","e m ail":"","maxloadsize":"100","indsubdiv":"1"}"}
                    Manifestement, ->get('indsubdiv') ne renvoie rien...
                    "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


                    • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                      Toujours bloqué sur cette question de récupération du paramètre "indsubdiv", j'ai réussi à corriger d'autres points, en espérant toujours qu'il n'y ait pas d'effet de bord...
                      A l'heure actuelle, côté site, j'en suis toujours à ce blocage de la création/modification de données que je laisse de côté pour le moment.
                      La version actuelle peut être vue ici : http://newjoaktree.par-robertg.fr/in...art&Itemid=115
                      Le fichier Gedcom utilisé est celui d'exemple inclus dans le logiciel Heredis 17 avec lequel je saisis ma propre généalogie.
                      "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


                      • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                        Il y a une autre chose que je n'arrive pas à comprendre en PHP 7 par rapport à PHP 5.6
                        Dans la localisation des lieux, dans une classe (class MBJServiceGeocode extends MBJService), j'ai cet appel
                        $request_url = $this->getUrl($data);
                        "getURL" n'existe pas dans cette classe, mais seulement dans des classes filles Google (class MBJServiceGeocodeGoogle extends MBJServiceGeocode) ou Mapquest, entre autres,
                        protected function getUrl(&$data) {
                        et tout fonctionne correctement.
                        Par contre, dès que je passe en PHP 7.0, j'ai une erreur fatale
                        Call to undefined method MBJServiceGeocode::getUrl()
                        Cette fonction getUrl n'est plus cherchée dans les classes filles, et je ne vois pas, même en cherchant dans le manuel PHP 7 en ligne, comment modifier ce code.
                        Merci encore de vos conseils !
                        "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


                        • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                          essaie de créer une fonction vide dans ta classe parente
                          protected function getUrl(&$data) {
                          }
                          Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                          http://www.template-creator.com Outil de création de templates
                          Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                          Commentaire


                          • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                            Merci Cédric mais hélas, la valeur de $request_url revient alors vide, dans le cas présent, elle devrait être renvoyée par la fonction liée à Google, dans le fichier services/geocode/google.php :
                            protected function getUrl(&$data) {
                            $url = $this->getBaseUrl();
                            $url .= '&address='.urlencode($data->value);

                            return $url;
                            }
                            Jusqu'en 5.6 en effet, sans "function geUrl()" dans services/geocode.php, la fonction est cherchée dans la classe enfant Google ou Openstreetmap, ce qui n'est plus le cas en 7.0, et je n'arrive pas à trouver d'infos utiles sur la toile...
                            "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


                            • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                              Manifestement, la classe fille à utiliser n'est pas connue. Si je remplace
                              $request_url = $this->getUrl($data);
                              par
                              $request_url = MBJServiceGeocodeGoogle::getUrl($data);
                              pour forcer l'utilisation de la "bonne" fonction, j'ai cette réponse :
                              Class 'MBJServiceGeocodeGoogle' not found
                              ce qui voudrait dire qu'en PHP 7 les classes filles seraient par défaut ignorées, alors qu'elles sont reconnues en 5.6.
                              "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


                              • Re : Problème de disparition d'extensions (Joaktree et Yoorecipes) : que faire ?

                                Mine de rien, ça avance, très lentement mais ça avance !

                                Pour mon paramètre "indsubdiv", le problème est réglé en utilisant une fonction du composant récupérant les "keys", qui récupère déjà "maxloadsize" dans ces mêmes paramètres, dans le même fichier.

                                Par contre, pour aller chercher les fonctions dans la classe fille, dans un autre fichier, j'ai dû charger le fichier en question, en dur pour le moment :
                                require_once JPATH_COMPONENT_ADMINISTRATOR.DS.'services'.DS.'ge ocode'.DS.'google.php';
                                Ensuite, des instructions utilisant l'appel à la classe fille remplacent le "$this" de manière efficace :
                                $request_url = MBJServiceGeocodeGoogle::getUrl($data);
                                Reste maintenant à trouver comment récupérer le service Google ou Openstreetmap pour adapter le code et ne plus faire de require en dur ni utiliser, si possible MBJServiceGeocodeGoogle à la place de $this, puisque pour le moment, ça ne permet que de localiser avec Google.
                                Dernière édition par RobertG à 09/01/2017, 17h20
                                "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

                                Annonce

                                Réduire
                                Aucune annonce pour le moment.

                                Partenaire de l'association

                                Réduire

                                Hébergeur Web PlanetHoster
                                Travaille ...
                                X