Le but est, à partir d'un billet de blog, écrit à l'aide DotClear 2, de géolocaliser le billet (donc inscrire dans le billet des informations géographiques le concernant), et de lier cela à OpenStreetMap.
Avant tout, signalons l'existence de Dotmap, une extension de géolocalisation très complète, mais ne supportant pas OpenStreetMap (mais je l'ai suggéré à l'auteur, et c'est dans la roadmap, via Mapstraction. La solution que je propose est beaucoup plus légère et rudimentaire. À vous de voir.
Nous allons simplement nous contenter d'ajouter dans le billet des informations de géolocalisation (latitude, longitude), exploitable via le microformat geo, et d'afficher cela sous forme de lien vers OpenStreetMap. À noter que l'on pourrait sans problème afficher en plus une carte OpenStreetMap, mais je trouve que cela alourdi beaucoup la page pour pas grand chose. Pour voir un exemple de ce que cela donne, regardez sous le billet Tonight in Toulouse, en bas des informations sur le billet : un joli lien vous mène vers l'endroit en question, sur le site principal d'OpenStreetMap.
Nous allons passer par le plugin Mymeta, qui permet d'ajouter des méta-données personnalisées aux billets. Dans notre cas, voici les méta-données en question :
place_name et zoom sont ici uniquement pour avoir un lien sympathique. Une fois les méta-données créées, vous avez la possibilité de les renseigner pour chaque billet. Si vous laissez tout vierge, il n'y aura pas de lien. Par contre, sinon, remplissez tout, le code que je vais donner ensuite n'aime pas trop se débrouiller avec la moitié des informations.
Pour récupérer ces informations, vous pouvez par exemple utiliser le site principal d'OpenStreetMap et son adresse Permalink
en bas à droite : vous trouverez dans cette adresse les coordonnées actuelles, ainsi que le niveau de zoom.
Téléchargez maintenant le fichier _osm_link.html, et placez-le dans le dossier tpl de votre thème. Pour afficher le lien, il vous suffit de modifier le fichier tpl/post.html de votre thème, et de placer là où vous voulez insérer le lien :
{{tpl:include src="_osm_link.html"}}
Cela insérera le lien dans des balise <li>, parce que ça m'arrange. Vous pouvez les supprimer de _osm_link.html.
Normalement, vous devriez déjà avoir quelque chose de fonctionnel. Pour agrémenter le tout, vous pouvez utiliser l'icône Geotag. Téléchargez-le, et insérez quelque chose comme ceci dans votre feuille de style :
.geo:before { content:url(img/geotag_16.png)"\0000a0"; }