Plugin Gis escoitar

Plugin pour l’intégration de Google Maps dans SPIP

Voici la documentation du plugin Gis, créé par l’équipe d’escoitar.org pour le système de publication pour internet SPIP. Sa traduction illustre aussi la bonne idée du multilinguisme SPIP comme source de création :)

Remarque importante

Attention, ce plugin utilise la version 2 de l’API Google Maps qui ne sera plus fonctionnelle à partir du 19 mai 2013. Pensez à migrer rapidement vers les versions plus récentes de GIS.

Présentation

Ce plugin, couplé au plugin Google Maps API permet d’afficher des cartes GoogleMaps sur les pages publiques du site. Les articles, les rubriques et les mots-clés du site peuvent être géolocalisés par des marqueurs sur les cartes. Un clic sur un marqueur permet d’afficher les informations de l’élément associé (titre et lien vers l’élément, chapo, logo, lecteur mp3).

Installation et paramétrage

Avant d’utiliser ce plugin, vous devez installer et configurer le plugin Google Maps API ou le plugin OpenLayers.

Ce plugin est développé pour une compatibilité avec SPIP 1.9.2 minimum avec le plugin CFG installé.

GIS (1.0.0)

Après avoir téléchargé l’archive sur votre disque dur, décompressez-la et déposez - via FTP - le dossier Gis dans le dossier plugins de votre site SPIP.

Une fois cette opération effectuée, rendez-vous dans l’espace privé de votre site et activez le plugin.

Avant de l’utiliser, vous devez configurer le plugin à l’aide du plugin CFG à l’adresse ecrire/?exec=cfg&cfg=gis.

Page de configuration CFG de GIS

Cette page permet de définir les options suivantes :

  • API de cartes à utiliser ;
  • portée du plugin GIS dans l’espace privé (toutes les rubriques ou seulement certaines d’entre elles) ;
  • désactivation du script swf_object si vous n’utilisez pas la fonctionnalité du lecteur mp3 dans les bulles d’informations ;
  • paramètres du formulaire public du plugin.

Publier des articles en utilisant GIS

Lors de l’affichage d’un article dans l’espace privé, cliquez le bouton Déplier.

Déplier la carte

Il faut cliquer sur la carte pour marquer un point à faire apparaître (une icône apparaît ainsi que des coordonnées placées en dessous). Puis enclencher le bouton actualiser, qui se trouve à côté des coordonnées.

Changer les coordonnées

On voit comment l’icône apparaît effectivement à cet endroit à chaque fois que l’on va sur l’article. Si l’on veut changer la localisation sur la carte, il faut recliquer sur Déplier et actualiser la position du marqueur.

La carte

Utilisation dans les squelettes et les articles

Pour insérer une carte dans un squelette, on se sert du modèle fourni par le plugin en insérant le code suivant à l’endroit où l’on souhaite afficher la carte :

[(#MODELE{carte_gis}{id_article}{id_rubrique}{id_mot}{id_auteur}
{recherche}{latit}{lonxit}{zoom=X}{type=xxx}{control=xxx})]

On peut aussi utiliser le modèle fourni par le plugin pour afficher une carte depuis le contenu d’un article. Pour cela, il suffit d’ajouter ce code dans le texte de votre article :

<carte_gis1|id_article=9|zoom=X|type=xxx|control=XXX>

Il est possible d’afficher plusieurs cartes sur la même page. Pour cela il faut bien faire attention à incrémenter le numéro d’identification du modèle comme ceci :

<carte_gis1|id_article=9|zoom=X|type=xxx|control=XXX>
<carte_gis2|id_article=10|zoom=X|type=xxx|control=XXX>

Lire la documentation à propos des modèles sur spip.net.

Paramètres du modèle

Si on n’inclut pas le modèle dans un contexte, la carte affichera tous les articles du site. Si on l’inclut dans un contexte (dans une boucle rubrique par exemple) ou en posant un numéro dans les paramètres de l’inclusion précédente comme ceci : {id_rubrique=1}, la carte affichera les articles du contexte ; ici ceux de la rubrique 1.

On peut afficher tous les articles d’un secteur en passant le paramètre {id_secteur} au modèle. Dans ce cas, si on tente aussi de passer le paramètre {id_rubrique} celui-ci ne sera pas pris en compte par le modèle.

On peut aussi afficher le marqueur d’un seul article en passant le paramètre {id_article=X} au modèle (où X correspond au numéro de l’article à afficher).

Les paramètres {zoom}, {latit} et {lonxit} permettent de gérer la zone affichée par la carte :

  • zoom comme son nom l’indique permet de spécifier le niveau de zoom de la carte (de 0 à 13).
  • latit permet de spécifier la latitude du point central de la carte.
  • lonxit permet de spécifier la longitude du point central de la carte.

Le paramètre {type=xxx} permet de définir le type de carte à afficher. Il est optionnel et peut prendre plusieurs valeurs :

  • satellite (valeur par défaut si le paramètre n’est pas défini)
  • carte
  • hybride
  • physique (pour afficher la carte de relief)

Le paramètre {control=xxx} permet de choisir l’apparence des boutons de contrôle de la carte. Il est optionnel et peut prendre les valeurs suivantes :

  • custom pour afficher des boutons personnalisés
  • large pour afficher les boutons par défaut de google maps
  • small pour afficher les petits boutons de google maps

Le paramètre {control_type=non} permet d’empêcher l’affichage des boutons de changement de type de carte.

Le paramètre {control_type=complet} permet d’afficher tous les boutons de changement de type de carte (Plan, Satellite, Mixte et Relief).

Le paramètre {recursive=1} permet d’afficher les articles de la rubrique en cours ainsi que ceux de toutes ses sous-rubriques.

Le paramètre {limit=xxx} permet de limiter le nombre de marqueurs à afficher sur la carte (valeur par défaut 50).

Le paramètre {attente=1} accompagne indirectement le paramètre limit et permet d’afficher une roue d’attente tant que la carte et tous ses points ne sont pas intégralement affichés. Particulièrement utile sur les cartes avec un grand nombre de points et des temps de chargements dépassant les 10, 20 secondes... Permet de rassurer l’utilisateur ! ;-)

Le paramètre {ombre=0} permet de désactiver l’affichage des ombres de marqueurs. Ce paramètre peu s’avérer utile sur les cartes denses en évitant que les ombres ne polluent encore plus un visuel déjà chargé.

Les paramètres {width=xx} et {height=xx} permettent de spécifier les dimensions de la carte à condition que le paramètre {style=non} ne soit pas passé au modèle. Les valeurs par défaut sont 100% pour width et 400px pour height.

Le paramètre {style=non} permet de désactiver les styles appliqués à la div qui contient la carte. Ainsi vous pouvez styler cette div depuis vos propres feuilles de styles.

Le paramètre {zoom_molette=non} permet de désactiver la fonctionnalité du zoom à l’aide de la molette de la souris. Celle-ci est active par défaut.

Le paramètre {id_a_ouvrir=XX} permet d’afficher la bulle d’information du marqueur dont l’id_article est XX lors du chargement de la carte (utilise la fonction abrirVentana présentée ci-dessous).

Contenu des bulles d’information

La bulle qui apparait sur la carte, lorsque l’on clique sur un marqueur, fera apparaître le chapo de l’article, #CHAPO, ainsi que la première image que l’on chargera en document de l’article, et un lecteur mp3 si l’on a attaché un document mp3 à cet article.

Bulle

Balises et boucles du plugin

On crée une boucle GIS pour récupérer les coordonnées de localisation de l’article en cours ; les balises #LAT et #LONX permettent d’afficher les coordonnées de l’article.

Exemple de boucle gis :

<BOUCLE_centrado(GIS){id_article}>
#LAT
#LONX
</BOUCLE_centrado>

Astuces

Centrer la carte sur l’article en cours

Pour centrer la carte sur l’article en cours, vous devez d’abord inclure le modèle du plugin dans votre squelette article.html (ou article-x.html si vous voulez restreindre cette modification au secteur numéro x).

Depuis votre squelette rubrique-x.html, dans les liens pointant sur chaque article, ajoutez le code suivant :

<BOUCLE_articles(ARTICLES){id_rubrique}>
<BOUCLE_centrado(GIS){id_article}>
<a href="[(#URL_ARTICLE)&zoom=16[&latit=(#LAT)]
[&lonxit=(#LONX)]]">#TITRE</a>
</BOUCLE_centrado>
</BOUCLE_articles>

La boucle GIS permet de récupérer les coordonnées de chaque article et de les transmettre à la carte du squelette article-x.html en les passant dans l’url.

Ouverture d’une bulle d’information depuis un lien

On peut ouvrir les bulles d’information depuis des liens situés à l’extérieur de la carte. Pour faire cela, il suffit de créer une boucle comme la suivante :

<BOUCLE_articles_map(ARTICLES) {par date}{inverse}{0,20}>
<a href="javascript:abrirVentana([(#ID_ARTICLE)],1)">[(#TITRE)]</a>
</BOUCLE_articles_map>

Dans cet exemple le chiffre 1 correspond à l’id de la carte dans laquelle on veut ouvrir les bulles.

Zoomer sur un point de la carte depuis un lien

On peut zoomer sur un point de la carte depuis un lien situé à l’extérieur (ou dans le descriptif d’un marqueur...) en utilisant la fonction javascript zoomIci. Exemple :

<a href="javascript:zoomIci(XX, YY, 16, 1);">Zoomer sur le Truc</a>

Les paramètres sont les suivants :

  • XX latitude
  • YY longitude
  • 16 le facteur de zoom
  • 1 l’id de la carte

Personnalisation des marqueurs

Il est possible de personnaliser l’apparence des marqueurs présents sur la carte : créez un groupe de mots-clés nommé marker_icon et attribuez un logo aux mots-clés de ce groupe.

Personnaliser les marqueurs

Remarque : l’image doit être aux mêmes dimensions que les marqueurs d’origine (20 pixels de large et 34 pixels de haut) et enregistrée au format png transparent.

Ensuite lorsqu’on attache un mot-clé de ce groupe à un article ou une rubrique, le logo du mot-clé est bien affiché sur la carte à la place du marqueur par défaut.

Carte avec marqueurs personnalisés

Superposition de fichiers KML

Vous pouvez joindre un fichier kml à vos articles ou rubriques et le contenu de celui-ci sera affiché en superposition de la carte. Pour cela, il faut afficher une carte à l’aide du modèle du plugin en lui passant l’id_article ou l’id_rubrique correspondant à l’élément qui comporte le fichier kml en document joint.

Attention : Il faut utiliser la version 2 ou « current version » de l’API de GoogleMaps pour que la superposition de KML fonctionne. Vous pouvez choisir la version de l’API depuis la page de configuration du plugin Google Maps API.

Pour générer ce type de fichier, vous pouvez utiliser le site de google maps et cliquer sur l’onglet mes cartes. Après avoir dessiné les tracés sur votre carte, il faut cliquer sur le lien KML (en haut au-dessus de la carte) pour télécharger le fichier.

Geocoding

La page de configuration du plugin permet d’activer l’option de geocoding (ou plus précisément de « reverse geocoding »). Cette option, uniquement disponible avec l’API de Google Maps, permet de récupérer l’adresse des points placés sur vos cartes.

Geocoding dans GIS

Une fois activée, l’option ajoute deux champs dans le formulaire de GIS (Pays et Ville). Lorsque vous positionnez un point sur la carte les informations d’adresse de celui-ci sont ajouté dans ces champs. Il se peut que ces informations soient erronées, le geocoding n’est pas « une science exacte ».

Dans vos squelettes, vous bénéficiez des nouvelles balises suivantes pour les boucles GIS :

  • #PAYS
  • #CODE_PAYS
  • #REGION
  • #VILLE
  • #CODE_POSTAL

Ainsi on pourra écrire :

<BOUCLE_centrer(GIS){id_article}>
[<div class="adr">
	<span class="country-name">(#PAYS)</span>[, 
	<span class="region">(#REGION)</span>][, 
	<span class="locality">(#VILLE)</span>]
</div>]
</BOUCLE_centrer>

Auteurs du plugin :

-  Horacio González
-  Berio Molina

Traductions de l’interface

L’interface est traduite à ce jour en :
-  galicien
-  espagnol
-  français

Traduction (amendable) depuis le galicien : Pascale

Le code est actuellement dans la Zone dans le dossier _plugins_/gis/.

Important : si vous souhaitez qu’on puisse vous aider lorsque vous postez dans le forum de cet article pensez à fournir un lien vers le site en question sans quoi il nous sera impossible de vous dépanner.

Discussion

296 discussions

  • kikinet

    Bonjour,

    au lieu de présenter la carte dans ma rubrique, d’une manière classique, je souhaiterai la mettre dans un lien qui ouvre un popup (avec le plugin du popup propre de spip), genre :
    « afficher la carte », ouvre un popup avec la carte ...

    j’ai essayé avec diff méthodes mais rien ne marche ...

    MERCI pour vos éclairages

    Répondre à ce message

  • 1

    Bonjour,
    J’ai téléchargé les deux plugin de google maps : google api et gips.

    Pour mes articles, j’ai créé plusieurs champs extra :
    Nom lieu, Adresse, Code Postal, Ville

    Je les appelle tous dans une même div class=« localisation » et ils sont affichés l’un à la suite des autres.

    -  Ma question :
    comment faire pour que, dans la page article, spip m’affiche la carte coorespondant aux critères contenus dans la balise div class=« localisation » ?

    Merci pour le coup de main ;)

    • Novispip

      Le principe serait de faire en sorte que ces champs passent par la barre de recherche « rechercher » de gis.

      N’étant pas très fort en php et mysql, je ne vois vraiment pas comment faire !

      Une idée ?

    Répondre à ce message

  • Bonjour,

    dans un modèle d’inclusion de carte,
    avec le paramètre id_rubrique
    est-il possible de passer un des critères du plugin polyhierarchie (
    branche... branche_principale... enfants,...)

    merci

    Répondre à ce message

  • 9
    Stéphane Santon

    Bonjour,

    Je voudrais attacher les coordonnées GIS à un nouvel objet éditorial ’etablissement’.
    J’ai tout compléter les tables de données (field/key id_etablissement dans spip_gus, ...)
    Mais quand j’affiche la carte il me rajoute toujours les points d’articles, et je ne trouve pas dans le code de GIS où il les prend... fichier ? boucle ?
    Merci

    • Salut, cette version de GIS ne permet pas d’attacher les points à d’autres objets de façon native. Cela sera possible dans GIS2 qui sera prêt... quand il sera prêt :p On va dire que ça devrait être dispo dans les mois à venir.

      ++

    • Stéphane Santon

      Ok mais je gratte plus loin que le natif. J’ai surchargé carte_gis.html mais je ne trouve pas où sont insérés ces points sur la carte.

    • Stéphane Santon

      Trouvé ! En 3 temps :

      • Rajouter {id_etablissement} dans carte_gis.html :
        [(#INCLURE{fond=inc_public_map}{id_etablissement}
      • rajouter [, id_etablissement:(#ID_ETABLISSEMENT)] dans inc-public_map.html :
        jQuery.get('[(#URL_PAGE{#GET{rss_gis}})]', 
                               {[limit:(#ENV{limit, 50})][, id_rubrique:(#ID_RUBRIQUE)][, id_etablissement:(#ID_ETABLISSEMENT)]
      • Modifier la boucle dans rss-gis.html
        <BOUCLE_un_etab(ETABLISSEMENTS){id_etablissement}
    • GIS2

      Je suis impatient de voir cette nouvelle version.
      Je suis un nouveau fan de GIS !
      Merci pour ce plugin.

      G

    • Bonjour

      Est-il possible de coupler le plugin GIS avec le plugin Google Maps API v3 ?

    • Non car GIS utilise l’API v2 de Google Maps et des fichiers XML (je crois) alors que Google Maps API v3 utilise la v3 et des fichiers JSON.

      Il te faut attendre GIS2 (je ne sais pas quelle API il utilise) ou attendre qu’on ait un peu de temps pour faire évoluer Google Maps API v3 pour le rendre plus facile à utiliser (bien qu’il soit parfaitement fonctionnel, mais pour les initiés...).

      Désolé :)

    • merci pour ta réponse.
      Je vais m’initier à l’API V3 alors.

       :)

    • GIS2 sera sûrement beaucoup plus complet et puissant, tu pourrais peut être juste simplement attendre :)

    • attendre c’est beaucoup moins drôle que de mettre les mains dans le cambouis :)
      hey ! mais en fait ! je peux faire les deux :)) attendre avec les mains dans le cambouis !

    Répondre à ce message

  • 9
    villalard

    OU TROUVER LES MODELES POUR LA BULLE D’INFO ?

    Bonjour,
    Quel est le fichier qui donne le modèle pour modifier la mise en page de la bulle d’info dans google map quand on clique sur la marker ?
    Merci de votre aide.
    Julien

    • Ce que tu cherches sera sûrement dans rss-gis et rss-gis-recursive. Attention toutefois à ne pas casser la structure du RSS, ce serait dommage.

    • ok merci. Dans rss-gis, le champ affiche bien le CHAPO ainsi qu’une image et les infos de date et d’auteur en bas de l’infobulle.
      Par contre, comment modifier la mise en page du titre au début ? Par exemple si je veux supprimer le lien hypertexte sur le titre en début d’infobulle ?

    • Personnellement, j’ai aussi du mal à gérer l’affichage des bulles, je trouve que le code n’est pas assez documenté et c’est difficile de s’y repérer, peut-être devrions-nous faire un travail d’analyse ? en tout cas, à part casser la structure du rss, et conséquemment virer le <link></link>, je ne sais pas comment faire, pas plus comment est généré le code affiché. C’est peut-être une solution qui marche pour toi bien qu’« incorrecte » ?

      Personnellement j’ai fait ça avec les CSS, et ça va très bien, mais si c’est au niveau de la structure que tu veux intervenir, ce n’est pas aussi évident.

      Il est plus facile de changer le lien vers le document, car celui-ci est écrit avec la syntaxe SPIP.

    • Voici la réponse : il faut modifier le fichier /plugins/auto/googlemap_api/js/geomap.js à partir de la ligne 127, la variable « html ».

    • Bien joué ! et merci car ça va me servir aussi... ;D

    • Bonjour,

      Qu’est-ce qu’il faut modifier si je veux pas d’image, pas d’auteur et transformer le format de la date ?

      Si je comprend bien il faut faire de la chirurgie « destructive » dans geomap.js ? Mais cela veut dire qu’il faudra opérer à chaque update du plugin ?

    • Non il suffit de modifier le fichier rss-gis.html ...

    • OK je vais plonger dedans maintenant.
      Merci

    • comme une lettre à la poste !
      encore merci

    Répondre à ce message

  • beaumanux

    J’ai le même problème que « zip » :
    J’ai installé Spip 1.9.2 et tous les plugs in nécessaires (google maps api et gis), la carte est bien affichée dans la partie privée mais rien ne s’affiche dans la partie publique.

    J’ai mis le code suivant dans mon article 1 de la rubrique 1 :
    <carte_gis1|id_article=1|zoom=12|type=carte|control=large>

    b_b signalait qu’il fallait avoir #insert_head dans son squelette
    Puis-je avoir des précisions à ce sujet...

    merci

    Répondre à ce message

  • 1

    Bonjour,

    J’aimerai savoir dans quel fichier du plugin se trouve la fonction qui charge les markers sur la carte ??? Merci de votre réponse

    • idem je pense !
      il faut modifier le fichier /plugins/auto/googlemap_api/js/geomap.js

    Répondre à ce message

  • 2

    Bonjour,

    J’ai un soucis avec le modele et id_secteur :

    [(#MODELE{carte_gis} {id_secteur=13} {type=physique} {zoom=8} {control_type=non} {attente=1} {limit=10})]

    J’ai 2 marqueurs pour le moment dans une seule rubrique, la 14, mais potentiellement dans plusieurs rubriques regroupées dans le secteur 13. D’où mon code.

    Hors un seul marqueur sort (si je remplace id_secteur par id_rubrique=14) j’ai bien mes 2 marqueurs. Pourquoi ? J’ai besoin de tout regrouper dans le secteur 13. Un bug ? Une mauvaise manip de ma part ?

    • Salut, pour lister les marqueurs d’un secteur il faut utilise le paramètre recursive du modèle.

      Le paramètre {recursive=1} permet d’afficher les articles de la rubrique en cours ainsi que ceux de toutes ses sous-rubriques.

      Donc : {id_rubrique=13}{recursive=1}

      ++

    • Super, ça fonctionne, j’avais zappé ce filtre.

      Par contre

      {limit=x} 

      joue sur le « nombre d’articles au total » et non pas le « nombre d’articles ayant une géolocalisation » c’est normal ?

      Au passage

       {id_secteur=13}{recursive=1}

      fonctionne aussi.

    Répondre à ce message

  • 2

    Bonjour,

    j’utilise le spip 2.0.9 avec un plugin google maps, sur ma carte il ya plusieurs markers (1000) alors j’ai pensé regrouper ses markers en clusters. Je voulais savoir si avec ce plugin on peut le faire ? si oui comment ?? Merci de votre réponse.

    ps : http://www.weboblog.fr/cluster-marker

    • Salut, non cela n’est pas pris en charge par le plugin par défaut. Tu peux tout de même utiliser le plugin dans le privé pour gérer la position de tes éléments et te bidouiller un modèle ou un squelette perso pour afficher une carte qui utilise un système de cluster. De mon côté j’utilise celui-ci qui fonctionne très bien :

      http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html

      ++

    • Merci pour votre réponse,

      Mais je ne suis pas bien en dev, alors si tu pouvais me donné un exemple de modele que tu as fais ca m’aiderai. Merci encore

    Répondre à ce message

  • 4

    Bonjour,

    J’ai installe Spip 2.1.8 et tous les plugs in nécessaire, la carte est bien affiche dans la partie prive mais rien ne s’affiche dans la partie publique

    J’ai pourtant bien l’impression d’avoir tout configurer comme explique ici meme...

    Une idée ?

    Merci

    • Salut, sans lien vers la page en question on ne pourra pas t’aider beaucoup...

      Jouons donc aux devinettes :

      • tes squelettes comportent bien la balise insert_head ?
      • peut être une erreur javascript dans tes pages ?

      ++

    • Salut,

      Tout d’abord merci la rapidite de ton intervention :)

      Si j’ai installe Spip c’est pour avoir rapidement un site avec un ensemble de fonctionnalités dont google maps

      Maintenant concernant la balise et le javascripts je ne compte pas y toucher sinon je fais comme avant et je me remet au php / javascript et sql et je fais qq chose moi meme ^^

      A moins que le code soit bugge et qu’il faille le corriger... mais dans ce cas je prefere me tourner vers un autre CSM comme Joomlà par exemple

    • Re, pas de réponses à mes questions, continuons les devinettes :

      Quel squelette utilises-tu ? Les squelettes par défaut ?

      As-tu bien inséré le code du modèle nécessaire à l’affichage de la carte dans un de tes squelettes ou dans le texte d’un article (ou une rubrique) ?

      Sans plus d’infos de ta part je ne peux que te dire : ça marche très bien chez moi © ^^ (et chez d’autres aussi d’ailleurs).

      Bon courage ++

    • J’ai tout effacer et tout reinstalle et cela fonctionne desormais

      Merci pour ta nouvelle reponse mais je ne voyais pas d’ou le problème pouvait venir d’ou le doute sur la validite du code de ce plug in ^^

      Merci encore c’est rare d’avoir autant de reponses en si peu de temps !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom