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

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

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

    Je stagne !
    J'ai plusieurs appels où après un require_once sur le fichier geocode/google.php ou geocode/openstreetmap dans la "function __construct", les lignes utilisent avec succès (pour Google) MBJServiceGeocodeGoogle:: au lieu de $this-> qui renvoie une erreur.
    Si je remplace MBJServiceGeocodeGoogle:: par une variable self::$myGeoclass::, j'ai une erreur : y a-t-il un moyen d'utiliser une variable pour un tel appel de fonction ?
    $request_url = MBJServiceGeocodeGoogle::getUrl($data);
    Merci de votre aide !
    "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 ?

      MBJServiceGeocodeGoogle:: par une variable self::$myGeoclass::, j'ai une erreur
      c'est sur
      self est déjà la classe, celle dans laquelle tu fais l'appel
      faudrait essayer
      $myGeoclass::func()

      (jamais testé, donc je ne peux pas te garantir que ça marche)
      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 je n'y arrive pas non plus comme ça.
        J'ai vu dans un autre fichier (services/service.php de l'administration de Joaktree) du code qui instancie la classe pour le géocodage Google ou Openstreetmap. Je vais étudier ça pour voir si je peux réutiliser ce code ou m'en inspirer pour instancier la bonne classe fille.
        "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 ?

          Bizarre, bizarre !
          Il m'a suffi de réutiliser $this-> après un require_once sur le fichier du provider, et ça semble fonctionner tant avec Google que Openstreetmap pour la localisation.
          Par contre, côté site, seul Google me permet l'affichage des cartes, j'ai une erreur de récupération du driver correspondant à Openstreetmap, si par erreur je laisse Google en carte interactive, au lieu de Mapquest.

          Bon, mine de rien, même si je patauge beaucoup, ça avance !

          Il faudrait que je trouve d'autres Gedcom à tester, sachant qu'en plus, il y a des tas de fonctionnalités de Joaktree que je n'ai jamais utilisées, et que sur les fichiers exemples comme sur le min, déjà testés, je n'ai pas d'images associées.

          Restera ensuite le plus gros morceau : cette tentative systématique de réinsertion de données lorsque je crée en frontend un individu ou un événement, et cette impossibilité de supprimer un individu, non trouvé à partir de son n° d'application et son 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 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 ?

            Tiens, encore une bizarrerie ! L'autre jour, j'ai commencé à expliquer que si la cartographie Google fonctionnait bien, tant pour la géolocalisation que pour l'affichage en frontend, et que la géolocalisation Openstreetmap fonctionnait aussi, l'affichage des cartes en frontend générait une erreur sur le site. Et j'ai testé de nouveau avant de valider : les cartes Openstreetmap/Mapquest s'affichaient... J'ai donc supprimé cette partie de mon message.
            Mais hélas, depuis, rien à faire, la classe nécessaire ne semble pas chargée côté site ! Message : "MBJ_SERVICE_ERROR_LOAD_SERVICE_DRIVER" que je sais localiser, mais pour lequel je ne comprends pas pourquoi il ne se produit qu'avec Mapquest !

            Autre point noté : l'import de Gedcom associant des images fonctionne, je précise la localisation de celles-ci dans les paraètres de la source, mais je ne vois pas d'images dans les fiches. L'un de vous utilise-t-il l'insertion d'images ?
            Par exemple, sur joaktree.par-robertg.fr le lien "Napoléon 1er" provenant d'un Gedcom exemple de Généatique devrait afficher une image avec le reste des infos. L'image est dans un dossier "images/genealogie/Napoleon", la source Gedcom étant aussi nommée "Napoleon" ; dans cette source, j'ai bien précisé comme dossier images "images/genealogie", mais malgré ça je n'ai que les données texte. Qu'ai-je oublié ?

            Merci de votre aide et de vos conseils.
            Robert
            "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 ?

              J'ai fini par trouver pour les images. C'était une question de paramétrage de chemin d'accès au dossier des images de la source, où j'avais omis le "/" terminal, en me basant sur l'infobulle qui ne le précise 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 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 ?

                Est apparu un nouveau souci : sur les cartes individuelles, il arrive que des événements d'individus d'autres sources Gedcom portant le même identifiant s'affichent en plus de ceux de l'individu choisi.
                Exemple sur le lien "MFB" de joaktree.par-robertg.fr où le décès de Charles d’Orléans à Cognac est localisé. Pourtant, dans les requêtes de base de données, je ne trouve pas où il pourrait y avoir confusion, l'identifiant de l'application (source Gedcom "exemple") qui est le 6 est bien présent. Ici, les deux individus ont l'identifiant I88, l'un dans la source 6, l'autre dans la source 8.

                Toujours à propos de cartes, il semblerait que Mapquest ne permette pas l'affichage de cartes interactives comme Google...

                On n'est pas encore au bout !
                "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 ?

                  Problème des cartes réglé (sauf Mapquest) : restriction sur source Gedcom ajoutée pour éviter les localisations d'individus de même ID mais de sources différentes sur les cartes individuelles, modification de la valeur chaîne "Plus d'individus" dans un fichier ini pour les cartes vides, l'apostrophe bloquant le script.

                  Pause et nouveau bilan des fonctionnalités encore incorrectes à faire.
                  "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 ?

                    un vrai développeur ce Robert
                    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 du compliment, Cédric, mais je n'en suis pas encore là, juste un bidouilleur pour le moment !
                      "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 ?

                        tu sais que c'est comme ça qu'on commence, on en reparle dans quelques années
                        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 ?

                          Oui, c'est comme ça que j'ai commencé il y a bien longtemps le développement pour DOS puis Windows, par des modifications et ajouts à des programmes existants, la création d'un programme de sauvegardes zippées et horodatées (ça n'existait pas à l'époque et j'en avais besoin), avant d'arriver à faire mon propre programme de comptabilité puis de participer au développement d'un programme de gestion de cabinet médical. Mais j'étais plus jeune, j'apprenais plus vite...
                          "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 ?

                            Je me suis attaqué au problème d'insertion/modification/suppression de données depuis le site.
                            Comme je l'ai dit plus tôt, lorsque j'ajoute un individu, il est bien inséré, mais si je comprends bien, l'enregistrement est d'abord fait sur prénom(s) et nom, puis un deuxième passage semble se faire pour enregistrer le sexe, et là ça plante sur une duplicate entry, car on utilise INSERT INTO de nouveau.
                            Je me suis attaqué au plus simple dans un premier temps : la suppression d'un individu. Et là aussi ça plante, l'individu n'étant pas trouvé dans la table "#__joaktree_persons" bien que le n° de la source (app_id) et l'ID de l'individus soient corrects. La requête ne renvoie rien, et pour cause.
                            Dans la fonction delete_person (dans "components/com_joaktree/models/personform.php"), c'est là que ça s'arrête, le chargement des infos de l'individu sélectionné ne renvoie rien, comme s'il n'existait pas dans la table, alors qu'il y est bien présent :
                            Code PHP:
                                    $tabPerson->id                 $personId;
                                    
                            $tabPerson->app_id             $appId;
                                    if (!
                            $tabPerson->load()) {
                                        
                            $this->setError('Error deleting person -> Person not found in table joaktree_persons: '.$appId.'!'.$personId);
                                        return 
                            false;
                                    } 
                            Dans le composant, je ne trouve la "function load()" que dans "administrator/components/com_joaktree/tables/KMFPKtable.php", et curiosité, j'ai du code que je ne comprends vraiment pas :
                            Code PHP:
                                    for($i 0$i count$k ); $i++) {
                                        if ( !
                            is_null($k[$i]) ) {
                                            
                            $query->where(' '.$this->_db->quoteName($k[$i]).' = '.$this->_db->Quote($k[$i]).' ');
                                        } else {
                                            return 
                            false;
                                        }
                                    } 
                            Ce "$query->where", une fois traduit, me donne "where 'app_id' = 'app_id'", ce qui veut dire qu'on ne demande pas que 'app_id' soit égal à la valeur donnée dans $tabPerson->app_id, mais à son propre nom ! Idem pour l'ID de l'individu. Pas étonnant que $tabPerson->load() soit null.

                            En fait, il me manquait un "$this" !
                            $query->where(' '.$this->_db->quoteName($k[$i]).' = '.$this->_db->Quote($this->$k[$i]).' ');
                            Dernière édition par RobertG à 22/01/2017, 11h15
                            "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 ?

                              Bon, un problème après l'autre ! Il semblerait que sous PHP 5.6 tout fonctionne (sous réserve de tests poussés...), par contre, je retrouve les plantages lors de la création/modification de données depuis le site, dès que je passe en PHP 7.0
                              En effet, la ligne déjà citée ne renvoie plus la valeur :
                              $wheres[] = ' '.$this->_db->quoteName($k[$i]).' = '.$this->_db->Quote($this->$k[$i]).' ';
                              Sous PHP 5.6, $this->_db->Quote($this->$k[$i]) me renvoie la valeur des ID de la source et de l'individu, permettant à la requête de retrouver les données déjà présentes, alors que PHP 7.0 renvoie une valeur vide, ce qui provoque une requête d'insertion au lieu de mise à jour.
                              J'ai beau multiplier les recueils d'infos avec j-Dump, pour l'instant, je ne comprends pas comment récupérer la valeur d'un champ à partir de son nom !
                              "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 ?

                                Malgré mes recherches et essais, j'en suis au même point : impossible de trouver comment récupérer la valeur dont j'ai besoin pour cette clause WHERE, si PHP est en version 7.
                                Dans le fichier personform.php qui correspond au formulaire, il y a cet appel à la fonction store où je rencontre ce problème :
                                Code PHP:
                                                    if (!$tabEvent->store(false)) {
                                                        
                                $this->setError('Error saving event: '.$tabEvent->getError());
                                                        return 
                                false;
                                                    } 
                                Cette fonction commence par
                                Code PHP:
                                    function store$updateNulls=true )
                                    {
                                        
                                $k $this->_tbl_key;
                                        
                                $wheres = array();
                                        
                                        
                                // execute query and retrieve result
                                        
                                $query    $this->_db->getQuery(true);
                                        
                                $query->select(' 1 ');
                                        
                                $query->from(  ' '.$this->_db->quoteName($this->_tbl).' ');        

                                        
                                // check whether all fields are filled and build where statement
                                        
                                for($i 0$i count$k ); $i++) {
                                            if ( 
                                is_null($k[$i]) ) {
                                                
                                $this->setError(get_class$this ).'::store failed - primary key '.$this->$k.' is empty (null)');
                                                return 
                                false;
                                            } else {
                                                
                                $wheres[] = ' '.$this->_db->quoteName($k[$i]).' = '.$this->_db->Quote($this->$k[$i]).' '/// RRG 23-01-2017 ajout $this (OK PHP 5.6)
                                                //$wheres[] = ' '.$this->_db->quoteName($k[$i]).' = '.$this->_db->Quote($k[$i]).' ';
                                            
                                }
                                        } 
                                C'est là que "$this->_db->Quote($this->$k[$i])" va renvoyer l'ID de l'individu, celle de la source, etc en PHP 5.6, alors que ça renvoie un "null" en PHP 7.

                                Je ne vois vraiment plus où chercher !

                                Dernière édition par RobertG à 23/01/2017, 18h08
                                "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