Après avoir galéré quelques heures pour trouver comment géolocaliser les utilisateurs de Drupal. Voici mon retour d’expérience.
Installation des modules Gmap et Location.
- Paramétrage de votre API Gmap : /admin/settings/gmap
- Configuration des utilisateurs, tout en bas « Emplacements des utilisateurs » : /admin/user/settings
Et c’est fini ! Le reste n’est qu’une affaire de thème.
La manipulation est très simple, mais le temps de trouver qu’il fallait aller dans la Configuration des utilisateurs m’a pris facilement 2h. Donc soit je suis fatigué, soit ce n’est pas logique.
En effet, ma première démarche fut d’activer le module Profile et de chercher à rajouter un champs de type Localisation.
Le reste ne fut qu’une errance sans fin sur Google.
S’il y a bien une chose que l’on peut reprocher à Drupal, c’est une ergonomie général complètement hétérogène.
Le soucis des modules, c’est que chaque développeur y va comme il le souhaite. On arrive vite à une assiette de spaghetti.
Vous avez aimé l'article ? Alors vous aimerez surement :
- TinyMCE et Flash
- Lister de maniere filtrée les membres de Drupal
- Générer un flux RSS à partir d’une View avec Drupal
- Livre Drupal en mode projet
- Hotmail intègre Live Messenger
Mots-clefs :Drupal, Geolocalisation, Gmap, Profile, Utilisateur

Salut !
Je te conseil de ne pas utiliser « Emplacements des utilisateurs », mais plutôt cck_location, qui couplé avec content profile et views te permet une bien plus grande flexibilité.
Il y a un élément à maitriser : les macros.
Exemple : [gmap |width=100% |height=400px |behavior=+autozoom]
On peut ainsi définir la taille de la carte, et la petite astuce ‘autozoom’ qui Zoom automatiquement sur la carte pour visualiser tous les marqueurs.
Ensuite il y a des choses très intéressantes à faire avec les views, genre la liste des personnes habitants dans le même ville qu’un utilisateur, ou mieux : toutes les personnes à 10 km à la ronde…
On peut le coupler aussi avec le module Organics Groups pour affiche la carte de tous les utilisateurs d’un groupe donné.
Ou encore faire une carte de tous les events dans une période donnée…
Enfin comme toujours avec Drupal, on peut vraiment (presque) tout faire !!
Le soucis, c’est que je n’aime pas la logique de transformer un utilisateur en nœud.
Il s’agit pourtant d’une donnée je suis d’accord. Mais pourquoi faire, dans quel but ?
Tu dis utiliser View pour pouvoir afficher les utilisateurs, et même les personnes habitant à 10km d’un point fixe.
Mais avec la solution ci-dessus, on peut aussi réaliser cela.
Au niveau de la configuration d’un vue, il existe « user_location_table » qui est une vue non activée. Les paramètres de proximité fonctionnent aussi.
Je n’ai pas assez de recule pour affirmer qu’il s’agit de la meilleur solution, d’ailleurs la documentation sur le Internet tendrai à prouver le contraire. Mais, cette documentation n’est pas récente, et pas suffisamment argumenté pour me convaincre.
Je reste malgré tout à l’écoute
Dans drupal 7 (sortie prévue dans deux mois environ) tout sera node et CCK.
Le profil sera un node et les champs du profil seront tous des CCK.
J’essaye au mieux de suivre les recommandations de Drupal et les évolutions à venir.
Deux pages intéressantes :
http://planete.drupalfr.org/node/616
http://www.ineation.com/drupal/drupal-7-rumeurs-et-previsions
Intéressant le premier lien.
Drupal 7 offrira en effet une meilleur transversalité entre les quatre grands types de donnée composant Drupal : Noeud, user…
Mais les utilisateurs ne deviendront pas pour autant des nœuds.
Je ne cherche pas à aller contre la vague, ni à faire mon mec chiant. Mais comme toi, à comprendre et à faire au mieux.
Utiliser les utilisateurs comme des noeuds doit très certainement avoir des avantages; mais j’ignore ces avantages.
PS : Il est d’ailleurs à noter, que le module Profile perdra son sens avec CCKFieldAPI lorsque celui-ci s’appliquera aussi aux utilisateurs.
C’est juste le profile rattaché à un utilisateur qui est utilisé comme un noeud, et non pas l’utilisateur lui même.
Cela me permet par exemple d’utiliser des conditional fields dans le profil. En fonction des cas j’y utilise aussi du composite ou panels.
Va vraiment falloir que je me mette a Drupal. Peut etre dans un prochain screencast.
Bon allez zou, je suis motivé pour me replonger dans Drupal.
Depuis le temps que je le dis, c’est vraiment l’occasion cette fois.