We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1362
    • 94 Posts
    Bonjour à tous, je viens de faire des test avec google map marker
    c’est exactement ce que je cherchais, sauf que...

    - je n’arrive pas à mettre des punaises persos

    - le contenu des infobulles ne veut pas de mes tv’s persos,
    j’utilise à la place les tv’s de base (title, longtitle...)
    mais au niveau gestion par l’utilisateur final, ce n’est pas très clair !
    j’ai fais des test avec 3 tv’s persos(adresse, site, photo)

    un petit coup de main, svp smiley

    Laurent
      desktop publishing & web design

      Evo and Revo user
      • 33976 ☆ A M B ☆
      • 571 Posts
      Bonjour,

      je pense que ce post (en anglais pourra t’aider) http://modxcms.com/forums/index.php/topic,5798.msg169095.html#msg169095

      Si ça n’est pas le cas (et ça peut être utile à d’autres) je vais essayer de traduire smiley

      - Dans le snippet, aller à la ligne 262 où vous trouverez
      function createMarker(point,name,html) {
      à remplacer par
      function createMarker(point,name,html,iconurl) {


      - Ensuite ajouter à la ligne 263 (après les modifications effectuées ci-dessus donc) :
      // Create our custom marker icon
      var icon = new GIcon();
      icon.image = iconurl;
      icon.shadow = "";
      icon.iconSize = new GSize(20, 35);
      icon.shadowSize = new GSize(29, 18);
      icon.iconAnchor = new GPoint(10, 15);
      icon.infoWindowAnchor = new GPoint(5, 1);


      - à la ligne 271, remplacer
      var marker = new GMarker(point);';
      par
      var marker = new GMarker(point,icon);';


      - enfin à la ligne 316, remplacer
      var marker = new GMarker(point,icon);';
      par
      var marker = createMarker(point, \'[+pagetitle:slashandstrip+]\', \'[+content:slashandstrip+]\', \'[+longtitle:slashandstrip+]\');


      Cela devrait fonctionner et permettre de spécifier la vignette dans la TV longtitle.

      Il est également possible de faire la même chose avec les ombres des vignettes
      function createMarker(point,name,html,iconurl,iconshadow) {
      (ligne 262) et de suivre le même procédé qu’au dessus.

      Au besoin je détaillerais.

      En espérant avoir répondu à la question. Bon courage smiley
        • 1362
        • 94 Posts
        Merci, j’ai déjà parcouru le topic que tu cites dans ton post, j’ai du rater une étape quelque part !

        le plus gros problème est la gestion des tv’s perso, pour les "markers" c’est pas vital, mais c’est vrai que des punaises perso c’est plus sympa !

        Je vais revoir le code (et je suis un super newbie en php)

        Laurent wink
          desktop publishing & web design

          Evo and Revo user
          • 33976 ☆ A M B ☆
          • 571 Posts
          Ehe, en fait le problème c’est surtout que c’est un mélange de PHP et JS… je suis pas mal paumé aussi, je vais essayer d’expliquer comme je l’ai compris (j’ai utilisé ce snippet il y a 6 mois…)

          Déjà ce snippet se base sur l’API de Google Maps, donc si tu es motivé, http://code.google.com/intl/fr-FR/apis/maps/documentation/javascript/v2/overlays.html ne fera pas de mal.

          La ligne 262 du snippet sert à initialiser la création des markers (cf. API Google Maps). En l’état initial du snippet, nous avons
          function createMarker(point,name,html) {
          qui créé le marker, avec des coordonnées, un nom ainsi qu’un contenu.

          Pour ajouter le support d’icones personnalisées et de leurs ombres, il faut modifier cette ligne en
          function createMarker(point,name,html,iconurl,iconshadow) {
          . Cette fois donc nous avons les coordonnées, le nom, le contenu, l’image « icone » ainsi que l’ombre.

          Ensuite il va falloir configurer ces nouvelles informations. Pour se faire on ajoute entre la ligne 262 et 263.
                          var icon = new GIcon();
                          icon.image = iconurl;
                          icon.shadow = iconshadow;
                          icon.iconSize = new GSize(30, 50);
                          icon.shadowSize = new GSize(80, 50);
                          icon.iconAnchor = new GPoint(15, 50);
                          icon.infoWindowAnchor = new GPoint(20, 15);


          Pour en finir avec cette partie on modifie la ligne suivante (anciennement ligne 263) en
          var marker = new GMarker(point,icon);';


          Pour essayer de faire un résumé plus clair, voici la portion changée avec quelques commentaires
                          // a function to create the marker and set up the event window
                          function createMarker(point,name,html,iconurl,iconshadow) { // ligne 262 dans le snippet original
          
                          // on créé nos icones personnalisées
                          var icon = new GIcon();
                          icon.image = iconurl;
                          icon.shadow = iconshadow;
                          icon.iconSize = new GSize(30, 50); // taille de notre image-icone
                          icon.shadowSize = new GSize(80, 50); // taille de notre image-ombre
                          icon.iconAnchor = new GPoint(15, 50); // coordonnées de l'image-icone (relative)
                          icon.infoWindowAnchor = new GPoint(20, 15); // coordonnées de l'image-ombre (relative)
          
                              var marker = new GMarker(point,icon);'; // ligne 263 dans le snippet original
          
          
              if($openMouseClickMarker) {
          


          Enfin, pour pouvoir définir les valeurs de « function createMarker(point,name,html,iconurl,iconshadow) » dans le manager, il faut modifier la ligne 306 dans le snippet original en
                  $script .= $modx->runSnippet($dittoName,array('depth' => $descendentDepth, 'sortBy' => $sortBy, 'sortDir' => $sortDir, 'summarize' => 'all', 'displayArchive' => '0', 'tpl' => '@CODE:var point = new GLatLng([+description+]); var marker = createMarker(point, \'[+title:slashandstrip+]\', \'[+content:slashandstrip+]\', \'[+iconurl:slashandstrip+]\', \'[+shadowurl:slashandstrip+]\'); map.addOverlay(marker);', 'parents' => $startID, 'showPublishedOnly' => '0'));
          


          Tu fera facilement le rapprochement entre
          var marker = createMarker(point, \'[+title:slashandstrip+]\', \'[+content:slashandstrip+]\', \'[+iconurl:slashandstrip+]\', \'[+shadowurl:slashandstrip+]\');

          et
          function createMarker(point,name,html,iconurl,iconshadow)


          C’est donc dans cette portion que tu pourra définir les TVs que tu souhaites utiliser pour donner des valeurs à name,html,iconurl et iconshadow.

          Voilà, j’espère avoir été aussi clair qu’un non développeur puisse l’être laugh
          Normalement, tu devrais pouvoir tâtonner plus facilement. N’hésites pas à me corriger si j’ai omis des informations…

          Bon courage again wink
            • 1362
            • 94 Posts
            Merci je vais revoir ça de plus près !
            je te tiens au courant

            smiley smiley

            Laurent
              desktop publishing & web design

              Evo and Revo user
              • 1362
              • 94 Posts
              Merci Romain, ça fonctionne nickel ! laugh laugh

              mes tv’s perso s’affichent bien dans l’infobulle et les markers sont personnalisés (j’ai intégré l’ombre dans mon marker en png, on y gagne quelques caractères dans le code wink

              Un grand merci !

              je vais essayer de franciser les commentaires du snippet pour mieux m’y retrouver pour de futurs travaux et partager surtout ! vu la longueur du topic anglais sur le sujet, et les attentes des utilisateurs, une petite version pour les "frenchy" sera la bienvenue, je pense !

              Laurent

              je posterai le snippet modifié dans ce topic, si ça peut aider ...
                desktop publishing & web design

                Evo and Revo user
                • 1362
                • 94 Posts
                Après quelques test, j’ai de nouveau été confronté à un autre problème, le texte qui dois s’afficher dans mes infobulles, provient du [*content*] des pages "enfants", sauf qu’il est blanc, dans ces pages ! J’ai tenté de foncer le fond des infobulles, apparemment c’est pas si simple que ça, heureusement modx permet de mettre un fond et hop, nickel, un joli fond à mes infobulles, sans se taper encore du code !

                Laurent smiley
                  desktop publishing & web design

                  Evo and Revo user
                  • 5811
                  • 1,717 Posts
                  Bonsoir, je suis effectivement intéressé par la solution globale (marker customisé et utilisation de Tvs), la dernière fois que j’ai regardé ce sujet et essayé, j’ai fini par tout écrire dans un fichier js. Donc pas très réutilisable laugh
                    • 1362
                    • 94 Posts
                    Salut, je mettrais à dispo mon snippet modifié avec des explications !

                    A plus

                    Laurent
                      desktop publishing & web design

                      Evo and Revo user