IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

lier un popup de carte au template du site du popup


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2019
    Messages : 80
    Par défaut lier un popup de carte au template du site du popup
    Bonjour, je cherche à faire une carte interactive. Ma carte indique les sites d'escalade en France par exemple. Je veux que le popup du marqueur d'un site de la carte me renvoi sur le template de ce site qui est descriptif. Mon projet est en symfony. J'ai procédé comme suit. Dans index.htmll.twig, je colle la carte dans une balise javascript. J'essaye de boucler sur la variable 'sites' des sites d'escalade dans ma BDD via la script javascript dans le twig mais pour l'instant ca ne marche pas. Voici le code du script dans index.html.twig :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <script>
            //definiton de la variable site dans le script
            var site = {{sites}}
     
            //on initialise la carte
            var carte = L.map('macarte').setView([48.852969, 2.349903], 5);
            //on charge les tuiles
            L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
                    // Il est toujours bien de laisser le lien vers la source des données
                    attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
                    minZoom: 1,
                    maxZoom: 20
                }).addTo(carte);
            
             var icone = L.icon({
                        iconUrl:"../img/pointeur-de-carte.png",
                        iconSize: [50, 50],
                        iconAnchor: [25, 50],
                        popupAnchor: [-2, -44],
                    });
     
            // on parcours les différents sites
                       
            for ( site in sites) {
               
                    // Nous définissons l'icône à utiliser pour le marqueur, sa taille affichée (iconSize), sa position (iconAnchor) et le décalage de son ancrage (popupAnchor) 
                    //on crée un marqueur et on lui donne un popup
                    var marqueur = L.marker([sites[site].lat, sites[site].lon],{icon:icone}).addTo(carte);
                    //marqueur.bindPopup('<h3>sites</h3>');
                    //marqueur.bindPopup(site);
                                 
                    marqueur.bindPopup(<a href="{{ path('site_show', {'id':sites.id}) }}">site</a>);
     
                    
                   // markerClusters.addLayer(marker); // Nous ajoutons le marqueur aux groupes
                    //markerClusters.push(marqueur);
                }
                                  
        </script>

    J'ai l'erreur suivante
    An exception has been thrown during the rendering of a template ("Notice: Array to string conversion").

    Le dump dans le twig de sites marche. Je ne sais ou mettre un __toString pour faire que la conversion en string marche. Faut-il créer une fonction? Merci

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    D'après ce que je vois, l'erreur est au niveau du code serveur (php ou autre) et pas js, car cette erreur apparait souvent lorsqu'on essaie d'écrire un tableau avec echo par exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $t=[1,2];
    echo $t;// ceci lèvera une erreur fatale (Array to string conversion).

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2019
    Messages : 80
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Joomla!] Erreur à l'installation de template sur site distant
    Par Siguillaume dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 29/09/2008, 16h52
  2. Carte france annotable pour site
    Par Kalidor dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2008, 16h30
  3. Deux cartes réseau pour deux sites web
    Par Sheriff dans le forum Administration
    Réponses: 1
    Dernier message: 02/08/2008, 10h25
  4. Créer un template de site ?
    Par guintolli dans le forum SharePoint
    Réponses: 27
    Dernier message: 31/07/2008, 16h58
  5. lier une popup a sa fenetre mère
    Par websyst dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2006, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo