GoogleMap Api et Gis Plugin sont les deux plugins qu’il convient d’utiliser pour géolocaliser sur SPIP
Pour les installer et les utiliser, je vous renvoie à leurs tutoriels sur SPIP-CONTRIB.
Ce billet porte exclusivement sur le jeu de cartes mis en place sur Bibliosurf et l’utilisation de la balise #ENV qui permet de contextualiser les cartes.
Arborescence des dossiers
Sur Bibliosurf, toutes les notices de présentation des livres sont rangées dans le dossier Notices, le secteur 1.
Sauf pour les notices géolocalisées qui sont rangées dans des sous-dossiers du secteur 1.
J’ai donc créé des dossiers pour la carte polar, livres de cuisine, etc...
Dans le squelette
Il y a plusieurs méthodes pour insérer une carte. J’ai choisi d’insérer le code dans le squelette.
1. Pour afficher les livres géolocalisés d’une rubrique, il suffit de mentionner le numéro de la rubrique dans la boucle qui encadre le code du modèle de la carte.
2. Dans le modèle, on peut aussi dire sur quelle partie du monde on veut que la carte s’ouvre. On utilise pour cela les balises latit, lonxit, zoom.
La balise attente permet de créer une petite animation pendant que le script télécharge les données.
La balise limit permet de réduire le nombre d’éléments affichés. C’est essentiel de limiter à 100 le nombre de documents affichés car des logiciels très lents comme Internet explorer n’arrivent ensuite plus à traiter l’affichage des cartes.
Le code à insérer dans le squelette est donc celui-ci.
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique=numérodela rubrique}>
[(#MODELE{carte_gis}{id_rubrique?}{latit}{lonxit}{zoom}{type=carte}{attente=1}{control=large}{limit=100})]
</BOUCLE_rubrique_principal>Jeu de cartes
Pour créer un jeu de cartes, il faut utiliser des variables qui afficheront en fonction du numéro de la rubrique un titre différent et surtout une carte différente.
La balise #ENV de SPIP permet de récupérer les variables mentionnées dans l’url.
Exemple d’URL
http://www.bibliosurf.com/spip.php?page=jeu_de_cartes&test=240Pour récupérer 240 dans une boucle, il suffit d’écrire #ENV{test}
Exemple de boucle
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique=#ENV{test}}>
[(#MODELE{carte_gis}{id_rubrique?}{latit}{lonxit}{zoom}{type=carte}{attente=1}{control=large}{limit=100})]
</BOUCLE_rubrique_principal>On peut aussi écrire que si pas de variable affiche par défaut tel élément.
Ainsi, le jeu de cartes de Bibliosurf s’ouvre par défaut sur la carte polar grâce au code suivant
{id_rubrique=#ENV{test,240}}Il suffit ensuite de l’insérer dans la boucle.
On peut bien sûr utiliser des variables pour toutes les balises.
Exemple du code utiliser pour afficher la carte
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique=#ENV{test,240}}>
[(#MODELE{carte_gis}{id_rubrique?}{latit=#ENV{latit,28.921631,7.03125}}{lonxit=#ENV{lonxit,19.085114,316.40625}}{zoom=#ENV{zoom,2}}{type=carte}{attente=1}{control=large}{limit=100})]
</BOUCLE_rubrique_principal>Après, on récupère cette variable pour le titre de la page.
Exemple pour le jeu de cartes
<h1 class="titre_article">Géolocalisez
[(#ENV{test}|!={'240'}|?{'',les intrigues des romans policiers})]
[(#ENV{test}|!={'270'}|?{'',les lectures de l'été 2009})]
[(#ENV{test}|!={'251'}|?{'',les lectures de l'été 2008})]
[(#ENV{test}|!={'248'}|?{'',les récits de voyages})]
[(#ENV{test}|!={'259'}|?{'',les albums de photos})]
[(#ENV{test}|!={'243'}|?{'',la cuisine française})]
[(#ENV{test}|!={'244'}|?{'',la cuisine du monde})]
[(#ENV{test}|!={'246'}|?{'',les guides touristiques})]
[(#ENV{test}|!={'279'}|?{'',les Polars en nord (Livres numériques)})]
</h1>Pour les liens qui permettent d’appeler les différentes cartes, c’est un peu plus complexe.
Car on ne veut pas qu’il y ait un lien sur le titre si carte déjà affichée.
On pratique donc ainsi pour chaque lien.
[(#ENV{test}|=={'240'}|?{<b>les intrigues des romans policiers</b> |
,<a class="titre_orange" href="[(#URL_PAGE{jeu_de_cartes,test=240})]">les intrigues des romans policiers</a> | })]Pour le lien qui pointe la carte Polars nord, il y aura bien plus de variables
[(#ENV{test}|=={'279'}|?{<b>les Polars en nord (Livres numériques)</b> |
<a class="titre_orange" href="[(#URL_PAGE{jeu_de_cartes,test=279})&latit=50.597186,3.339844&lonxit=1.220422,2.334595&zoom=7]">les Polars en nord (Livres numériques)</a> | })]Conclusion
La publication est une succession d’étapes. Celle-ci est une des dernières dans le maniement de ce plugin.
Commentaires
Répondre à cet article