Univers BOX
Sur le Web

SPIP - Contrib

Le site des amis de SPIP


Articles les plus récents

Légendes

vendredi 20 août 2010 par b_b — Légendes, ,

Un plugin pour ajouter des légendes à ses images comme sur Flickr.

Inspiré de Fotonotes et basé sur le script jQuery Image Annotation.

Accéder à la page de démonstration sur Géodiversité.NET.

Démonstration

Voir la vidéo originale sur Vidéos SPIP.

Fonctionnalités

Que peut-on faire avec ce plugin ?

  • ajouter, modifier et supprimer des légendes sur des images
  • utiliser les raccourcis typographiques de SPIP et du html dans les légendes
  • tourner une image avec ses légendes (en utilisant la fonctionnalité de rotation de SPIP)
  • afficher l'image et ses légendes dans n'importe quelle taille (les proportions sont conservées)
  • gérer des droits d'édition des légendes

Installation et pré-requis

Installation et activation comme tous les plugins.

Ce plugin nécessite les plugins :

Utilisation du modèle

Dans les squelettes :

  1. [(#INCLURE{fond=modeles/image_legendes,
  2. id_document=XX,
  3. largeur=XX,
  4. hauteur=XX,
  5. class=XX,
  6. editable=XX,
  7. bouton_ajouter=XX})]

Dans le texte des éléments de SPIP :

  1. |id_document=356|largeur=500>

Paramètres du modèle :

  • id_document : numéro de l'image à afficher
  • largeur : largeur de l'image (largeur max de l'image si pas de hauteur spécifiée)
  • hauteur : hauteur de l'image (hauteur max de l'image si pas de largeur spécifiée)
  • class : classe CSS à ajouter au conteneur du modèle
  • editable : si oui les notes de l'image sont éditables (sous réserve des autorisations nécessaires), si non les notes ne sont pas éditables, si vide les notes sont éditables sous réserve d'autorisation
  • bouton_ajouter : sélecteur CSS pour cibler un bouton de création de note personnalisée

Configuration des autorisations

Les autorisations des légendes dépendent des autorisations des documents.

En tant qu'auteur vous pouvez :

  • ajouter des légendes aux documents sur lesquels vous avez des droits
  • modifier les légendes dont vous êtes l'auteur

En tant qu'administrateur vous pouvez :

  • ajouter, modifier et supprimer les légendes de tout le monde sur tous les documents

Il est possible de personnaliser ces autorisations depuis la page de configuration du plugin.

PNG - 5.7 ko
Configuration du plugin Légendes

LangOnet Présentation générale

Un outil destiné aux développeurs pour vérifier, générer, retrouver ou afficher les items de langue d'un plugin, d'un squelette ou des fichiers originaux de SPIP.

Objectif

La mise au point des fichiers de langue d'un plugin ou d'un squelette est souvent une activité fastidieuse que l'on repousse à la fin des développements (toute ressemblance avec la documentation est fortuite...).
Ceci est particulièrement vrai quand on opère des mises-à-jour lourdes sur un développement déjà multilingue.

LangOnet passe en revue tous les fichiers du site : tant les fichiers originaux de SPIP que ceux des plugins installés (activés ou non) ou les éventuels fichiers-squelettes de personnalisation.

Ce plugin aide ainsi à la mise au point des chaînes de langue en proposant :

  • Une vérification de la bonne définition des items de langue (utilisés dans le code HTML ou PHP mais non définis dans les fichiers de langue) ;
  • Une vérification de la bonne utilisation des items de langue (définis mais non utilisés dans le code) ;
  • Une recherche des chaînes de langue utilisées avec la fonction _L() (items à traduire) ;
  • Une génération d'un fichier de langue « cible » à partir d'un fichier de langue « source » ;
  • Un affichage en clair d'un fichier de langue ;
  • Une recherche des items de langue SPIP à partir de leur clef (raccourci) ou d'un extrait de leur valeur (traduction affichée).

Installation

Comme tout plugin, il suffit de suivre les procédures manuelles ou automatiques standard : veuillez vous reporter à cette documentation : SPIP-1-9-Les-Plugins.

Pré-requis

Il est nécessaire d'activer le plugin SPIP-Bonux pour être en mesure d'utiliser LangOnet.

Pertinence et limites

Les analyses effectuées par LangOnet sont basées sur des expressions régulières qui débusquent les items de langue dans des fichiers écrits en différents langages et sous des expressions parfois peu évidentes.

Dans sa version actuelle, LangOnet est capable de rechercher des items de langue dans les fichiers :

  • de code PHP (exemple : fonctions_plugin.php),
  • de squelette HTML (exemple : ma_page.html),
  • de définition XML ( exemple : plugin.xml).

Dans ces fichiers, LangOnet est capable de repérer des utilisations telles que :

  • <:item_de_langue5:>
  • <:pluga:item_de_langue4:>
  • <:module:item_de_langue3{arg1=texte, arg2=#BALISE}|filtre1{texte, #BALISE}:>
  • _T('plugb:item_de_langue1', array('dest'=>$dest, 'bli' => 'blo'))
  • _T('module:item_de_langue2_' . $truc.'n')
  • _T('module:item_de_langue6_'.$truc['bla'].'aa')
  • _T("item_de_langue7_" . $truc[$bla].'aa')
  • _T("item_de_langue9' . is_string($val) ? '_'.$val : '')
  • _T("module:$variable")
  • _T("module:".$variable)
  • _T('module:'.$variable)
  • _U("item_de_langue8")
  • _L("Ceci est une chaîne qu'il faut traduire")
  • _L("Ceci est une $expression à traduire @urgence@", array('urgence' => 'bientôt'))

Comme on peut le voir, si le plus grand nombre des utilisations possibles est ainsi couvert il est bien évident que « toutes » les écritures contenant des items de langue ne sont pas repérées aujourd'hui ; mais cela est perfectible et nul doute que le forum de cet article permettra de découvrir d'autres utilisations « particulières » des items de langue.

De plus le résultat des analyses menées par LangOnet ne conduit pas toujours à une information certaine.
Par exemple, dans le plugin Rainette, les situations météorologiques sont connues par un numéro de 0 à 47 ; le fichier de langue rainette_fr.php se présentant ainsi :

  1. 'meteo_0' => 'tornade',
  2. 'meteo_1' => 'tempête tropicale',
  3. 'meteo_10' => 'pluie verglaçante',
  4. 'meteo_11' => 'averses',
  5. 'meteo_12' => 'averses',
  6. 'meteo_13' => 'quelques flocons',
  7. 'meteo_14' => 'faibles averses de neige',
  8. 'meteo_15' => 'blizzard',
  9. ...

L'utilisation qui en est faite dans le code est la suivante :

  1. function rainette_resume_meteo($code_icon) {
  2. include_spip('inc/rainette_utils');
  3. $resume = ucfirst(_T('rainette:meteo_'.code2icone($code_icon)));
  4. return $resume;
  5. }

Ici, l'utilisation des items meteo_xx dans la fonction rainette_resume_meteo() ne permet pas à LangOnet de savoir avec certitude si toutes les valeurs de 0 à 47 sont bien utilisées. LangOnet ne fournira donc qu'un avertissement appelant l'auteur à procéder à une vérification manuelle...

Les principes de l'interface utilisateur

Tout se passe dans l'espace privé du site (sous-menu de Édition ou depuis l'adresse ?exec=langonet_verifier).

La page affichée par défaut en cliquant sur l'entrée de menu « Vérifier les langues » est présentée ci-dessous. On y distingue les quatre onglets permettant d'accéder aux différentes fonctions du plugin.

La partie centrale affiche, d'une part, le « formulaire de paramétrage » de la fonction LangOnet en cours d'utilisation, et d'autre part, le « bloc des résultats ». Ces résultats utilisent un jeu de couleurs : vert, jaune ou rouge afin d'attirer l'attention de l'utilisateur sur le niveau d'erreur détecté.

La colonne de gauche présente les fichiers de log des vérifications ou la liste des fichiers de langue générés. Ces fichiers sont créés dans le répertoire tmp/langonet/. Il est possible de les télécharger sans passer par le FTP en cliquant simplement sur leur nom et pour les utilisateurs du plugin MediaBox, un « popup » de visualisation des fichiers s'ouvre d'un simple clic sur l'icone présente à droite du nom du fichier.


Plugin Coordonnées

jeudi 19 août 2010 par Cyril MARION, Matthieu Marcillaud — Contacts & organisations, , , , ,

Le plugin « Coordonnées » fournit la possibilité d'attribuer aux auteurs/utilisateurs de SPIP des indications de coordonnées multiples tel que plusieurs adresses postales, emails ou téléphoniques.

Ce plugin fonctionne de manière autonome ou peut être couplé au plugin « Contacts et Organisations ».

Objectif

Ce plugin a pour objet de compléter les informations relatives aux auteurs par des éléments de contact, tel que des adresses postales, emails ou téléphoniques.

Origine

Ce plugin est né du projet « Comptes & Contacts » renommé maintenant « Contacts & Organisations » (avec la même finalité) dont il est une sous-partie fonctionnant de manière autonome.

Ce qui le différencie de plugins existants actuellement pour étendre les auteurs (Inscription2 par exemple) est le fait que l'on peut attribuer, pour un auteur, autant d'adresses que souhaitées, ce qui était, pour certains, une limitation.

Fonctionnement

« Coordonnées » utilise 3 tables liées aux auteurs : une table adresses, une emails et une numeros dont il est possible d'appliquer des boucles :

  1. (AUTEURS){id_auteur}>
  2. #NOM :

  3. (ADRESSES){id_auteur}>
  4. #NUMERO #VOIE
    >
  5. #COMPLEMENT
    >
  6. #CODE_POSTAL #VILLE
  7. span>>
  8. span>>

Dans l'espace privé, la vue des auteurs permet d'attribuer des adresses :

Le formulaire est ajouté simplement en dessous. Les champs par défaut peuvent être complétés avec le plugin Champs Extras 2, comme ici le champ « région » :

Une fois l'adresse complétée, elle s'affiche sur la vue de l'auteur :

Champs

Les 3 types de coordonnées fournissent les champs suivants (extensibles avec le plugin Champs Extras 2) :

  • Boucles ADRESSES
    • #NUMERO
    • #VOIE
    • #COMPLEMENT
    • #BOITE_POSTALE
    • #CODE_POSTAL
    • #VILLE
    • #PAYS
    • #TYPE_ADRESSE
  • Boucles EMAILS
    • #EMAIL
    • #TYPE_EMAIL
  • Boucles NUMEROS
    • #NUMERO
    • #TYPE_NUMERO

Dépendances

La version 1.1 du plugin nécessite SPIP 2.1 ainsi que :
- Saisies
- le plugin « Pays » ou le plugin « Géographie »


Cisticole

mercredi 18 août 2010 par Shnoulle — Thèmes, , , , ,

Cisticole est un thème original pour Zpip. C'est un thème en 2 colonnes.

Basé sur 2 dégradés de couleurs, il est possible de choisir différentes configuration de ces couleurs.

Présentation

Le thème Cisticole est distribué sous licence GPL par Denis Chenu. Le thème est basé sur le layout Gala. Le contenu est situé avant le menu pour une meilleure prise en compte par les moteurs de recherche, il est positionné en absolu pour s'intégrer dans l'entête. Le menu est déroulant sur 4 niveaux, un peu de javascript permet de l'animer et de poser un repère pour les sous menus.

Actuellement, 8 variations de couleurs sont possible :

Capture

PNG - 318.9 ko
Page sommaire
PNG - 352.1 ko
Charte typo

En mode plugin, il est possible de choisir les dégradés de couleurs via la page ecrire/?exec=configurer_cisticole.

Vous pouvez aussi changer rapidement les couleurs du site en copiant le fichier cisticole-default.css.html dans votre répertoire squelettes


Accessibilité pour les rédacteurs

SPIP est un CMS largement répandu dans la sphère publique. Tout les jours des centaines de webmestres gérant des services de communication publique en ligne utilisent SPIP pour mettre leur contenu en ligne que ce soit dans de petites communes ou de très grand Ministère.

Depuis le 29 octobre 2009, les services de communication publique en ligne doivent se mettre en conformité par rapport au Référentiel Général d'Accessibilité pour les Administrations (RGAA) qui demande à ce que les sites web publics soient accessibles au plus grand nombre, notamment les personnes en situations de handicaps.

L'objectif de cet article n'est pas de présenter le contenu du RGAA ou l'intérêt d'une démarche d'accessibilité mais de voir thématique par thématique en quoi SPIP permet, nativement ou avec quelques ajouts, de produire du contenu accessible pour un rédacteur.

Images

Les règles :

Lors de l'inclusion d'image dans un article le rédacteur doit pouvoir :

  • spécifier l'alternative courte des images
  • spécifier une description dite longue reprenant l'ensemble des informations apportés par l'image (par exemple : toutes les informations récupérables sur un graphique statistiques).
  • spécifier la langue de l'alternative si elle est différente de la langue de la page

Ces alternatives doivent être adaptées au contexte d'utilisation de l'image en fonction de la façon dont elle est utilisée (alt='' si décorative, alt='fonction du lien' si image lien, alt='information apportée par l'image' si l'image est porteuse d'information).

Les images dans SPIP :

Pour l'heure, il est possible d'insérer une image dans un article à l'aide des modèles , , ou . Le fonctionnement par défaut des modèles prévoit :

  • un attribut alt='' si l'utilisateur ne spécifie rien
  • un alt='titre' si le rédacteur spécifie un titre à l'image.
  • un alt='format de l'image ou du document – poids de l'image ou du document' si c'est un lien vers un document avec icône du format (raccourci doc).

Ces comportements sont bons mais ils présentent néanmoins quelques problèmes.

Les problèmes :

  • Aucune gestion des descriptions longues
  • Un titre = Une alternative, il est donc impossible d'avoir des alternatives adaptés aux différents contextes d'utilisation d'une même image.
  • Aucune gestion des changements de langue

Les solutions :

Utiliser le plugin accessibilité qui modifie les modèles , , et afin de pouvoir par défaut :

  • spécifier une description longue. Pour cela il suffit de renseigner une description dans la base de données. Si vous souhaitez avoir une description et un titre visible différent de ceux enregistrés dans la base de donnée (raccourci ) il est possible d'utiliser des paramètres supplémentaires sur les modèles sous la forme : image|legende=legende de votre document/image>
  • spécifier une alternative différente du titre de l'image lorsqu'il y en a un enregistré dans la base de donnée en utilisant un paramètre supplémentaire sur les modèles sous la forme :
  • spécifier une langue pour votre alternative en utilisant un paramètre supplémentaire sur les modèles sous la forme :

Ce qui donnerait pour une image avec une alternative en anglais

Multimédia

Les règles :

Le rédacteur insérant un contenu multimédia dans son contenu devra porter attention à :

  • fournir une alternative/un transcript aux éléments multimédia (exemple si l'utilisateur n'a pas le plugin flash il aura l'alternative) ;
  • proposer des sous-titres et une piste d'audio description si nécessaire ;
  • laisser le contrôle à l'utilisateur de la lecture, du son, des éléments clignotants, flashant et mouvant ;
  • produire du code HTML valide dans la méthode d'insertion de l'élément multimédia.

Le multimédia dans SPIP :

Il est possible d'insérer une vidéo, un son ou une animation Flash dans un article Spip à l'aide des raccourci ,,,. Par défaut ce raccourci essai d'afficher l'élément multimédia avec le lecteur adapté et affiche si ils sont défini dans la base de donnée le titre et le descriptif en dessous.

Les problèmes :

  • Il est impossible de définir un contenu qui s'insérera dans la balise object et servira d'alternative.
  • Le code html produit n'est pas toujours conforme aux spécifications HTML à cause de l'utilisation de la balise

Les solutions :

  • Mettre un lien juste après l'élément multimédia pointant vers un autre article SPIP ou vers un fichier en téléchargement (dans un format accessible) contenant l'alternative.
  • Utiliser les modèles de documents accessible du plugin accessibilité pour éviter l'utilisation de balise et pouvoir également spécifier une alternative en utilisant un paramètre supplémentaire sur les modèles sous la forme :

Pour ce qui concerne le sous-titrage et l'audio-description : soit ces éléments sont incrustés nativement dans la vidéo, soit ils doivent être mis en pièce jointe à l'article et synchroniser au travers de l'utilisation d'un modèle spécifique de player vidéo supportant le sous-titrage et l'audio description (par exemple le Jwplayer ; à noter que portage du jwplayer plus complet dans le plugin accessibilité est également prévu)

Pour ce qui concerne le contrôle des animations / vidéos les éléments doivent eux-mêmes être contrôlable par l'utilisateur, SPIP ne pourra rien pour vous.

Texte

Les règles :

Un texte peut parfois être difficile à comprendre pour un lecteur notamment à cause de passage dans une langue différente, de l'utilisation d'acronymes ou d'abréviation, ou de mot complexe. Il est alors nécessaire de :

  • signaler les changements de langue à l'aide de l'attribut lang='code de langue' pour les passages de textes, les mots et les attributs dans une langue différente de celle du contenu principale de la page. L'indication du changement de langue permet notamment aux utilisateurs de lecteur d'écrans qui restitue vocalement les textes de parler dans la bonne langue.
  • signaler les abréviations et les acronymes à l'aide de la balise et
  • mettre des liens vers un lexique/glossaire/dictionnaire/encyclopédie pour les mots complexes.

Le texte dans SPIP :

SPIP est nativement multilingue, il permet de déclarer la langue d'un article et de son site. Il est particulier de préciser qu'un contenu est en langue parlée complétée, langue des signes française ou français simplifié (à activer dans la page de gestion des langues). Néanmoins il n'est pas aussi performant quand il s'agit des changements de langue dans un texte. Il permet également d'insérer des liens vers Wikipédia à l'aide du raccourci [?xxx].

Les problèmes :

Il n'existe aucun raccourci pour déclarer les changements de langue au sein d'un article, pour déclarer les acronymes et les abréviations et pour faire facilement un glossaire interne.

Les solutions :

  • Pour les images utiliser les modèles de document accessible de plugin accessibilité permettant de définir la langue sur les balises images
  • Utiliser la lame décoration du plugin couteau suisse pour créer des raccourcis typographiques supplémentaires permettant de signaler les changements de langue dont vous avez besoin. Une configuration possible de cette lame est la suivante :

Vous disposerez alors des raccourcis suivant ,,,,,,, à utiliser sur les mots ou bloc de texte en anglais, allemand, espagnol ou italien. Exemple :
Phrase en français avec some words in english.

Block of text in english.

With some paragraphs inside

Structuration

Les règles :

Le contenu textuel doit être correctement structuré afin de faciliter sa lectuer et sa restitution au sein des aides techniques. Cela passe notamment par :

  • l'utilisation d'intertitre dans vos textes
  • l'utilisation de liste ordonnées et non ordonnées
  • l'utilisation de citation

La structuration des textes dans SPIP :

SPIP permet nativement de créer des intertitres qui seront transformé en

par l'intermédiaire du raccourci {{{votre intertitre}}}. Il permet la création de liste ordonnée et non ordonnée par l'intermédiaire des raccourcis -# et -* (
    et
      ). Enfin, il permet de définir des passages de texte comme étant des citations courtes ou longues grâce au raccourci citation.

      Les problèmes :

      • SPIP ne gère qu'un seul niveau d'intertitre et il peut parfois être nécessaire de structurer son texte de façon plus complète (comme dans cet article où j'ai dût artificiellement utiliser le gras pour matérialiser un 2e niveau d'intertitre)
      • l'utilisateur peut commencer une suite de paragraphes par un – ce qui aura pour effet de simuler visuellement une liste non ordonnées mais ne la balisera pas comme tel

      Les solutions :

      • Utiliser le plugin « Enluminures Typographiques V3 pour Porte Plume » afin de disposer de raccourcis typographiques permettant de gérer des niveaux d'intertitres supplémentaires à l'aide de {{{** intertitre de niveau deux }}} et {{{*** intertitre de niveau trois }}}
      • Activer dans la configuration du plugin l'option permettant de transformer les paragraphes commençant par '-' par de vrai liste à puces. Cela se fait grâce à la globale $GLOBALS['barre_typo_pas_de_fausses_puces'] = true; ou est réglable dans la page de configuration du plugin.
      • il peut également être utile d'ajouter dans votre fichier config/mes_options.php la configuration suivante :
        1. <?php
        2. $GLOBALS['barre_typo_pas_de_fork_typo'] = false; // Pour tenir compte de http://zone.spip.org/trac/spip-zone/changeset/22723 et disposer des raccourcis typo supplémentaires !
        3. $GLOBALS['debut_italique'] = "";
        4. $GLOBALS['fin_italique'] = '';?>

      Tableau

      Les règles :

      • donner un titre à vos tableaux de données pour décrire brièvement son contenu,
      • donner un résumé précisant l'organisation du contenu dans le tableau
      • Utiliser des entêtes dans vos tableaux afin de pouvoir y rattacher le contenu des cellules et faciliter la compréhension de son contenu.

      Les tableaux dans SPIP :

      SPIP gère nativement les tableaux de données simples organisés verticalement et permet de préciser un titre, un résumé et des entêtes au tableau. Cela ce fait à l'aide de la syntaxe suivante :

      1. ||Légende|Résumé||
      2. | {{Nom}} | {{Date de naissance}} | {{Ville}} |
      3. | Jacques | 5/10/1970 | Paris |
      4. | Claire | 12/2/1975 | Belfort |
      5. | Martin | 1/31/1957 | Nice |
      6. | Marie | 23/12/1948 | Perpignan |

      Les problèmes :

      SPIP ne permet pas de gérer les tableaux de données complexe organisés horizontalement ou verticalement et horizontalement.

      Les solutions :

      Il n'existe malheureusement pas à l'heure actuelle de solution à ce problème. La solution la plus simple consiste à faire son tableau au sein d'un éditeur HTML permettant de structurer un tableau de donnée de façon accessible et de coller le code au sein du champ texte de SPIP.

      Navigation

      Les règles :

      • avoir des intitulés de liens explicites
      • indiquer les ouvertures dans une nouvelle fenêtre, les formats/poids de fichier en téléchargement
      • avoir une table de matière quand l'article est long

      La navigation dans SPIP :

      SPIP permet dans un article de placer de liens par l'utilisation du raccourci [texte->url]. Il est également possible de définir des ancres [<-monancre] et des infos bulles sur les liens [texte| info bulle->url]. Spip ne permet pas par défaut d'ouvrir des liens dans une nouvelle fenêtre. Enfin Spip ajoute automatiquement le format et le poids dans l'alternative de l'icone des documents insérés dans un article à l'aide

      Les problèmes :

      Pas de problème en particulier mais il existe néanmoins des solutions facilitant la tache du rédacteur.

      Les solutions :

      • Utiliser la lame sommaire automatique du couteau suisse pour créer automatiquement des sommaires à vos articles
      • Utiliser le plugin accessibilité pour ajouter automatiquement les formats et les poids quand un lien vers un document est inséré (attention cela ne traite que les liens vers des fichiers docXX [xxx->docXX] et non les liens vers des urls directes [xxx->http://www.xxx.com/xxx.pdf]

      Conclusion

      Vous voilà désormais bien armé pour permettre à vos rédacteurs de produire du contenu accessible ou les aider à le faire.

      Un article complémentaire vous listant les éléments nécessaire coté squelette devrait suivre dès que goetsu aura un moment. D'ici là bonne production de contenu accessible.


      Plugin SPIP-Géoportail

      Plugin pour l'intégration d'objets SPIP sur l'API Géoportail.

      Préambule :

      Travaillant sur un projet utilisant SPIP et le Géoportail, il nous a semblé conforme de reverser la partie permettant l'affichage des cartes du Géoportail à la Communauté...
      Pour des raisons historiques, le plugin fonctionne en 1.9.2 même si des tests ont étés fait avec du SPIP 2.0 et 2.1.

      Installation

      Le plugin s'installe comme tout autre plugin, téléchargez le fichier ZIP et placer son contenu dans votre répertoire "plugins/". Activez-le ensuite dans la page de gestion des plugins.

      Il vous faudra également demander une clé en vous inscrivant sur la page de l'API Géoportail. L'utilisation de l'API est gratuite pour tout usage ne procurant au licencié aucun avantage économique direct ou indirect (voir les CGU de l'API). Moyennant cela, vous aurez accès aux couches Géoportail présentes dans l'API (photo, cartes, parcellaire, plan de ville...) ainsi qu'au service adresse.

      Un nouveau menu apparaît dans l'espace privé sous l'icône de configuration. C'est là que vous devrez indiquer le numéro de votre clé ainsi que les types d'objets que vous souhaitez géoréférencer.

      Fonctionnement

      Une fois activé, le plugin vient insérer un formulaire dans les pages de l'espace privé de SPIP. Par défaut, seul les articles et les auteurs auront se formulaire. Vous devez cocher les cases correspondantes sur la page configuration du plugin pour l'étendre aux autres objets.

      GIF - 12.5 ko
      Formulaire Géoportail sur la page d'un article.
      En SPIP v.2 un lien apparaît sous les documents pour permettre de les géréférencer. En v.1.9, un menu déroulant listant les documents est placé directement dans le formulaire.

      Cliquez sur le bouton déplier pour afficher la carte.

      JPEG - 84.3 ko
      Formulaire de l'API Géoportail

      Vous avez 4 façons de géoréférencer l'objet :

      • Si c'est un document qui contient une position géographique (un GPX, un KML ou une image géotaguée) vous pouvez rechercher la position directement dans le fichier (dans les autres cas, la case n'apparaît pas).
      • Si c'est un document, vous pouvez récupérer le géo-référencement de l'article auquel il est associé.
      • Vous pouvez placer l'objet au centre de la fenêtre.
      • Vous pouvez utiliser l'API Géoportail pour rechercher une adresse.
        NB : Cette fonctionnalité nécessite un proxy. Il se peut que celui-ci ne fonctionne pas partout ou soit bloqué par le serveur où se trouve votre site...
      JPEG - 17.2 ko
      Recherche Géoportail par adresse

      Enfin, vous pouvez rentrer les coordonnées géographique à la main ;-)

      Une punaise vient se placer sur l'objet en cours de positionnement. Vous pouvez ensuite déplacer cette punaise à la souris.
      Cliquer sur le bouton valider avant de quitter...

      Notons que, avec SPIP 2.x, il est possible de géoréférencer automatiquement les documents géotagués à leur téléchargement (le plugin va lire le tag dans le fichier).

      Utilisation dans un squelette

      Le plugin déclare une table GEOPOSITIONS qui fait le lien avec les tables SPIP

      GEOPOSITIONS
      id_geoposition id_objet objet lon lat zoom zone id_dep id_com

      lon et lat sont les coordonnées de l'objet avec le zoom et la zone sur le géoportail. id_dep et id_com permettent de faire un lien avec un répertoire géographique (voir le chapitre plus loin).

      La jointure avec les autres tables se fait à l'aide du critère geoposition.
      Par exemple pour afficher les coordonnées des articles :

      1. (ARTICLES){geoposition}>
      2. #ID_ARTICLE : #LON #LAT
        >
      3. span>>

      Modèles et fonds

      • Insérer une carte
      1. |mode=mini>

      L'insertion d'une carte dans un article se fait par un simple raccourcis typographique : ou X est le numéro de la carte. Vous pouvez déclarer plusieurs cartes sur la même page à condition de bien veiller à fournir un identifiant différent à chaque fois.
      Vous pouvez demander une carte de situation (overview). Celle-ci s'affichera dans la div id=overviewMap si celle-ci existe (et prendra la taille de cette div), sinon, elle s'ajoutera à la div id=navigation (avec la taille : 160x160).

      Paramètres :
      - id_geoportail : identifiant de la carte (unique de préférence !)
      - id_article : permet d'afficher les documents de l'article donné. Ainsi, si vous avez joint un fichier kml à votre article, il s'affichera sur la carte (voir également Afficher une trace)
      - width, height : largeur, hauteur (utiliser pc au lieu de % dans les URI) par défaut, ceux du css
      - mode : normal/mini
      - lon, lat, zoom : centrage sur un point
      - zone : la zone Géoportail (FXX)
      - layerctrl : affichage du gestionnaire de couche (false,true,mini)
      - toolbox : affichage les outils (0,false,true,mini)
      - infobox : affichage les infos (0,false,true)
      - searchtools : afficher les outils de recherche (0,1) par défaut:1
      - measuretools : afficher les outils de mesure (0,1) par défaut:0
      - overview : afficher une carte de situation (0,1) par défaut:0
      - min_zoom, max_zoom : le zoom mini/maxi
      - carto : opacité de la carte (0->1)
      - ortho : opacité de l'image (0->1)
      - formulaire : la carte est un formulaire (usage interne : ajoute un contrôleur pour faire le lien avec le formulaire)

      • Afficher une trace
      1. |geoportail|id_geoportail=Y>

      Ce raccourcis permet d'insérer le document géographique X (GPX ou KML) sur la carte Y. C'est le contenu du fichier qui s'affiche à l'intérieur de la carte (la trace).

      JPEG - 87.3 ko
      Affichage d'un document GPX avec SPIP-Géoportail
      permet d'afficher la trace.
      • Afficher un document
      1. |geoportail|id_geoportail=Y>

      Ce raccourcis affiche le document X sur la carte Y. C'est la vignette du document qui s'affiche (ou la vignette standard).
      Paramètres :
      - id_geoportail : id de la carte où afficher l'image
      - taille : taille de l'image sur la carte
      - bord : taille du bord (en px)
      - couleur : couleur du bord
      - align : top, left, bottom, right ou combinaison : top-left...

      • Accès direct
      1. |geolien>

      Ce raccourcis permet d'ajouter un lien d'accès directe à la carte X. C'est l'adresse de la page avec les paramètres de positionnement de la carte qui permettront de se recentrer dessus. Il contient également l'option 'envoyer à un ami'...
      Ou le modèle :

      [(#MODELE{geoportail_geolien}{id_geoportail=X})]
      • Zones Géoportail
      1. |geozone>

      Ce raccourcis affiche un menu déroulant permettant de changer de zone (passer de la france métropolitaine à la Réunion par exemple).
      Ou le modèle :

      [(#MODELE{geoportail_geozone}{id_geoportail=X})]
      • Des articles sur une carte
      1. ((#MODELE{geoportail_geoarticles}{id_geoportail=X}{id_rubrique})]

      Si une rubrique est précisée, on se limite à cette rubrique.
      Paramètres :
      - legende : groupe de mot clé a utiliser comme légende (représentation en fonction du logo du mot clé)
      - taille : taille des icônes : 20px
      - couleur : couleur du bord : #FFFFFF
      - bord : taille du bord : 4
      - id_article : limiter a un article
      - id_auteur : limiter a un auteur
      - id_rubrique : limiter a une rubrique
      - id_secteur : limiter a un secteur
      Paramètres issus du modèle GEOPORTAIL :
      - id_geoportail : si on veux plusieurs cartes
      - ...

      Le paramètre légende permet d'utiliser un groupe de mot comme légende de la carte : c'est le logo du mot associé à l'article qui sera utilisé pour représenter l'article sur la carte et tous les articles ayant le même mot clé s'afficheront ainsi (c'est une légende quoi !).

      Ce modèle est utilisé dans la page geoarticles.
      monsite_SPIP/spip.php?page=geoarticles permet donc d'afficher les articles sur une carte.

      • Les auteurs sur une carte
      1. [(#MODELE{geoportail_geoauteurs}{id_geoportail=X})]

      Paramètres :
      - taille : taille des icônes : 20px
      - couleur : couleur du bord : #FFFFFF
      - bord : taille du bord : 4
      Paramètres issus du modèle GEOPORTAIL :
      - id_geoportail : si on veux plusieurs cartes
      - ...

      Ce modèle est utilisé dans la page geoauteurs.
      monsite_SPIP/spip.php?page=geoauteurs permet donc d'afficher les auteurs sur une carte.

      • Astuce Si vous n'avez qu'une seule carte, le paramètre id_geoportail est inutile il prendra la valeur par défaut (0).
        1. |infobox=0>
        2. |geoportail>
        3. |geoportail>
        4. |geoportail|align=top-left>

      Formulaire auteur

      1. [(#FORMULAIRE_GEOPORTAIL_AUTEUR{'ma position',true})]

      Ce formulaire permet aux visiteurs de se géoréférencer depuis l'espace public.

      Ce modèle est utilisé dans la page geoauteur. monsite_SPIP/spip.php?page=geoauteur permet donc aux visiteurs d'enregistrer leur position.

      Flux GéoRSS

      SPIP-Géoportail offre un flux GeoRSS au travers de la page georss. monsite_SPIP/spip.php?page=georss permet d'accéder à ce flux. Si ce type de flux est encore peu utilisé, vous pouvez copier/coller le lien directement dans la recherche de GoogleMaps pour afficher vos articles sur une carte Google...

      Les filtres

      Les filtres geoportail_longitude, geoportail_latitude et geoportail_dms permettent de convertir une coordonnées décimale au format degré/minute/seconde (Est/Ouest pour les longitudes, Nord/Sud pour les latitudes). Ils prennent un argument booléen (true ou false) qui supprime les espaces entre les chiffres pour un affichage plus compact.

      1. (ARTICLES){geoposition}>
      2. #ID_ARTICLE - [(#LON|geoportail_longitude{true})],[(#LAT|geoportail_latitude{true})]
      3. span>>

      On aura :

      1 - 6° 21' 37.5" E , 43° 29' 27.2" N
      au lieu de :
      1 - 6.36042897558 , 43.49087530174

      Les Géoservices

      • Ajouter des services

      L'API permet d'ajouter des services cartographiques à ceux proposés par le Géoportail. Ainsi, si vous disposé d'un tel service, vous pourrez l'afficher en superposition des couches du Géoportail. Certains organismes offre un accès de ce type (une recherche Google avec WMS et accès devrais vous en donner quelques uns). Un getcapabilities sur le service permet de voir les couches disponibles (un truc du genre adresse_du_service?service=wms&request=getcapabilities&version=1).

      Vous pouvez alors ajouter ces nouvelles couches dans le menu Edition-Géoservices de l'espace privé à condition d'avoir coché la case "Permettre l'ajout de Géoservices" dans la configuration du plugin. Pour un service donné, indiqués les couches que vous voulez voir s'afficher séparées par des virgules.

      Pour l'instant, seuls les services WMS sont pris en compte.

      • Gestion des couches Géoportail

      Les géoservices de type Géoportail sont un moyen pratique de regrouper des couches du Géoportail ou d'en masquer certaines. Pour cela, créez un géoservice de ce type et indiqués les couches que vous voulez regrouper en les séparant par des virgules (par exemple mettez : TRANSPORTNETWORKS.ROADS, TRANSPORTNETWORKS.RAILWAYS, TRANSPORTNETWORKS.RUNWAYS dans la liste des couches du service pour regrouper les couches 'transport'). Elle seront regroupées sur une même ligne dans la fenêtre des couches de l'API.
      Si vous choisissez de passer ce service en statut "à la poubelle", les couches ne s'afficheront pas.

      JPEG - 82.4 ko
      Regroupement de couche Géoportail
      Les Géoservices permettent de regrouper des couches géoportail dans la fenêtre de couches.

      Les services sont stockés dans une table GEOSERVICES à laquelle vous pouvez accéder à travers la syntaxe de boucle standard.

      Ajouter un répertoire géographique

      Vous pouvez lier automatiquement une position à un répertoire géographique. Ce sont les champs id_dep et id_com des GEOPOSITIONS.
      Si vous avez chargé un répertoire géographique sur la page de configuration du plugin, celui-ci va automatiquement rechercher l'objet le plus proche à vol d'oiseau dans ce répertoire et l'associer à la position.
      On peut ainsi retrouver les articles soumis dans un département donné :

      1. Articles soumis dans [(#ID_DEP|geoportail_departement)]
      2. (ARTICLES){geoposition}{id_dep}>
      3. #ID_ARTICLE : #NOM_COM #NOM_DEP(#ID_DEP)
        >
      4. span>>

      Si un répertoire géographique (RG) a été chargé,
      - le filtre geoportail_departement permet de retrouver le nom du département suivant son numéro.
      - les balise #NOM_COM, #NOM_DEP, #POPULATION, #SURFACE et #TOP25 renvoie le nom de la commune, du département, la population, la surface et la carte associés à cette position.
      - une ligne de recherche est ajoutée dans les formulaires et permet de rechercher un objet du RG.

      Généralement, les répertoires géographiques sont liés à des communes, mais vous pouvez créer votre propre répertoire géographique pour référencer des magasins, des stations, des centres régionaux... Dans ce cas, id_dep et id_com correspondront aux objets que vous référencez. Pour cela reportez-vous au fichier lisez-moi du répertoire rgc du plugin.

      Deux répertoires géographiques de communes sont proposés : un basé sur Géonames et l'autre sur le RGC de l'IGN. Vous devez télécharger le fichier zip correspondant et installer son contenu dans le répertoire rgc du plugin, pour que le RG correspondant soit détecté.

      Aller plus loin

      • fonctionnalités OpenLayers

      L'API Géoportail étant basée sur OpenLayers, vous avez accès à toutes le fonctionnalités de cette bibliothèque. Pour cela, le plugin déclare une variable Geoportal.Map : mapX pour chaque carte insérée (ou X est le numéro de la carte).
      Ainsi map0.getMap().setCenterAtLonLat(-4.46,48.38,12) centre la carte 0 sur Brest...

      1. <a href="javascript:map0.getMap().setCenterAtLonLat(-4.46,48.38,12)">
      2. Brest
      3. </a>

      Le plugin prend en charge toute la partie installation de la couche de l'API avant de faire appel à la fonction javascript initSpipMap (map, id) si elle existe (équivalent de initGeopotalMap() de l'API) où id est l'identifiant de la carte SPIP et map la variable Geoportal.Map correspondante.
      Pour plus de facilité, vous pouvez d'ailleurs déclarer une fonction javascript par carte : initSpipMap0 (map, id) pour la carte 0, initSpipMap1 pour la carte 1, etc.
      Vous pouvez alors utiliser toutes les fonctionnalités de l'API et d'OpenLayers.

      Si vous avez ajouté des images à l'aide du raccourcis elles sont placées dans le layer spip_img de la carte (mapX.spip_img). Les éléments de cette couche portent en attribut le titre du document, son id, son fichier, etc. (mapX.spip_img.features[i].attributes), au cas où vous voudriez en faire quelque chose...

      De même, si vous insérer un document dans une carte à l'aide du raccourcis , la fonction onLoadSpipDocX (id_document, layer) est appelé ou à défaut onLoadSpipDoc (id_document, layer) si une de ces fonction existe, où layer est le layer de l'API qui a reçu le document (GPX ou KML).

      Dans le même ordre d'idée, lorsque l'utilisateur effectue une recherche à travers les outils de l'API, la fonction javascript selectAdresse(f) est exécutée (si elle existe). En déclarant cette fonction, vous pouvez ainsi intercepter l'évènement pour faire quelque chose (afficher une information...).

      Pour toute question concernant l'API, consultez le forum de l'API Géoportail.

      • Un logo pour les couches SPIP

      Vous pouvez afficher un logo pour personnaliser vos couches (comme le fait l'API Géoportail en bas à droite de la carte). Pour cela, vous devez déclarer un logo à l'aide de la fonction jQuery.geoportail.setOriginator. Vous pouvez par exemple l'ajouter dans le fichier inc-entete.html de votre squelette (ici pour utiliser le logo du site) :

      1. <script type="text/javascript">
      2. jQuery.geoportail.setOriginator ('[(#LOGO_SITE_SPIP||extraire_attribut{src})]', '#URL_SITE_SPIP');
      3. span>script>
      • Téléchargement des positions des articles

      La fonction javascript mapX.downloadData (formatType, sel, proj, options) permet de télécharger le contenu d'une couche d'une carte (la couche est stockée dans la variable mapX.rlayer de la carte).
      Paramètres
      - formatType : kml, gpx, gml, osm ou gxt
      - sel : 'sel' : la sélection ou 'all' : tout ou 'extent' : le polygone de la zone affichée
      - proj : le code de la projection
      - options : les options du format OpenLayers

      1. <a href="javascript:map0.downloadData ('kml', 'all')">
      2. Télécharger les positions des articles en kml
      3. </a>

      Divers

      Le plugin ajoute les formats GPX (format ouvert issu de GPS) et GXT (format d'export texte du SIG Géoconcept) aux types de document SPIP.

      Voilà, c'est à vous de jouer !

      Je vous rappelle qu'un concours API-Géoportail est lancé jusqu'au 24 septembre 2010 pour ceux que cela intéresse !

      Un exemple d'utilisation est consultable ici : http://grafreex.free.fr/?rubrique14


      Bandeau

      lundi 16 août 2010 par tetue — Bandeau, , , ,

      Et si on repensait la navigation principale de l'espace privé de SPIP ?

      Ce plugin permet de tester en situation réelle un nouveau bandeau de navigation pour l'interface de SPIP 2. Aussitôt activé, il remplace la navigation principale de l'espace privé par une version améliorée, graphiquement assortie.

      C'est un prototype fonctionnel abouti, issu des réflexions collectives sur les listes de discussion, à commencer par ce long thread (liste [spip-dev], 04 Feb 2009), et autres protos dont ce prototype de navigation pour l'interface SPIP.

      Ce travail collectif a vocation à être intégré dans une prochaine version de SPIP.

      Comme la navigation est un repère fort, il est logique que vous soyez un peu déstabilisés au départ car certaines habitudes ne fonctionneront plus. Néanmoins, à l'usage cette navigation devrait s'avérer plus confortable que l'actuelle, notamment lorsque de nombreux plugins [1] sont installés.

      N'hésitez donc pas à faire vos retours d'utilisation.


      [1] A ce sujet, certains plugins n'apparaitront peut être pas dans les menus : ils ne prennent pas encore en charge cette nouvelle navigation. N'hésitez pas à le signaler dans le forum afin que cela soit corrigé rapidement !


      Critères {precedent} et {suivant}

      mercredi 4 août 2010 par Matthieu Marcillaud — Navigation à suivre, , , , , , , ,

      Le plugin « Critère précédent / suivant » pour SPIP 2.1 est une expérimentation permettant de trouver, dans une boucle donnée, l'élément suivant ou l'élément précédent. Cet usage est principalement utile pour créer des navigations par rubrique ou par thème (mots-clés).

      Expérimentation

      Notez avant toute chose que les critères proposés sont fonctionnels, mais expérimentaux. Nous serions preneurs de retours d'utilisation et de tests de temps de calcul des pages utilisant ces critères par rapport aux boucles que vous utilisez habituellement pour réaliser ces navigations.

      Utilisation

      Imaginons que nous sommes dans une boucle ARTICLES dont l'identifiant d'article est connu :

      1. (ARTICLES){id_article}>
      2. span>>

      Nous pouvons à l'intérieur réaliser une boucle sur tous les articles de la même rubrique, classés par date :

      1. (ARTICLES){id_article}>
      2. (ARTICLES){id_rubrique}{!par date}>
      3. #TITRE
        >
      4. span>>

      5. >
      6. span>>

      Si l'on veut seulement l'article précédent de la même rubrique, il suffit d'ajouter le critère {precedent}. De la même façon, si l'on souhaite juste l'article suivant l'article en cours, on ajoute le critère {suivant} :

      1. (ARTICLES){id_article}>
      2. (ARTICLES) {id_rubrique} {!par date} {precedent}>
      3. Précédent : #TITRE
        >
      4. span>>
      5. (ARTICLES) {id_rubrique} {!par date} {suivant}>
      6. Suivant : #TITRE
        >
      7. span>>

      8. >
      9. span>>

      Ces deux critères fonctionnent quels que soient les critères de sélection de la boucle et quel que soit le tri choisi, à partir du moment où la table SQL interrogée a une clé primaire simple (non composée de plusieurs champs). Cela fonctionne donc pour tous les objets standards de SPIP : auteurs, articles, rubriques, documents, mots, etc.

      Nécessaire

      L'identifiant de la clé primaire de la boucle sur laquelle nous allons appliquer le critère {precedent} ou {suivant} doit être connu dans un élément parent (une boucle parente ou l'environnement du squelette). Sans cet identifiant, on ne peut pas trouver de suivant ou de précédent, cela va de soi.

      Principe de fonctionnement

      Ces critères {precedent} et {suivant} s'inspirent beaucoup du code du critère pagination de SPIP 2.1, capable de placer le numéro de pagination sur un identifiant d'article donné. Merci Cédric !

      Prenons un cas simple :

      1. (RUBRIQUES){racine}{!par date} {suivant}>
      2. #TITRE.
      3. span>>

      L'action du critère est la suivante :

      1. on va chercher dans les boucles parentes, sinon dans l'environnement, l'identifiant de la boucle connue : ici, la valeur de id_rubrique pour cette boucle RUBRIQUES.
      2. on récupère l'ensemble des résultats répondant aux critères de sélection de la boucle, comme s'il n'y avait pas le critère {suivant}, c'est à dire ici, la liste de toutes les rubriques racines.
      3. la liste est parcourue jusqu'à trouver une entrée de la liste qui a la même valeur que l'identifiant de la boucle : que les id_rubriques soient égaux ici.
      4. on place le curseur de boucle sur l'élément de la liste qui était juste avant dans le cas du critère précédent, ou juste après dans le cas du critère suivant.
      5. on indique qu'il n'y a qu'un seul résultat à cette boucle. La boucle est alors affichée par SPIP.

      Le calcul des éléments passe donc par une analyse des résultats de la boucle, ce qui fait que si la boucle d'origine renvoie un grand nombre de résultats, ce calcul peut être long et n'est pas optimisé. Néanmoins, il permet d'avoir des critères génériques pour afficher des éléments précédents et suivants.

      Évolution

      Une évolution possible est de pouvoir indiquer via un critère, dont le nom est encore à définir, de récupérer non pas 1 élément suivant ou précédent, mais d'indiquer de combien de lignes de résultats on se déplace avant ou après l'identifiant de boucle actif, d'une part, et d'obtenir autant de lignes de résultats que souhaitées.

      Si des idées vous naissent :)

      Inclusions fournies avec le plugin

      Le plugin fournit en exemple une inclusion pour les articles, permettant d'afficher des liens vers les articles précédents et suivants.

      L'inclusion est inclure/article_precedent_suivant. Il faut absolument lui transmettre un id_article !

      1. (ARTICLES){id_article}>
      2. [(#INCLURE{fond=inclure/article_precedent_suivant,id_article})]
      3. [(#INCLURE{fond=inclure/article_precedent_suivant,id_article,id_rubrique})] // dans la rubrique
      4. [(#INCLURE{fond=inclure/article_precedent_suivant,id_article,id_mot=3})] // ayant le mot 3
      5. [(#INCLURE{fond=inclure/article_precedent_suivant,id_article,id_auteur=8})] // ...
      6. span>>

      Personnaliser la page d'accueil de l'espace privé

      Cette mini contrib va vous permettre de rediriger la page d'accueil de l'espace de rédaction vers une page personnalisée.

      Comme chacun sait, il est possible d'écrire ses propres pages pour l'espace de rédaction de SPIP.

      Dès lors, il peut être utile de rediriger la page d'accueil de l'espace de rédaction vers une page personnalisée.

      Admettons que vous ayiez créé une page ma_page accessible à l'adresse /ecrire/?exec=ma_page alors le code suivant ajouté dans le fichier /config/mes_options.php permettra d'effectuer la redirection vers cette page quand l'utilisateur arrive dans l'espace de rédaction.


      Mozaic

      mardi 27 juillet 2010 par Matthieu Marcillaud — Thèmes, , , ,

      Un thème en 2 colonnes et largeur fixe, pimenté de couleurs.

      Présentation

      Le thème est créé pour Zpip par Matthieu Marcillaud, sous Licence GNU/GPL. Il possède quelques variantes de couleurs activables pour l'instant avec le plugin CFG.

      Voir une démo du thème Mozaic

      Variantes

      Mozaic en rose Mozaic en vert Mozaic pastel Mozaic en jaune Mozaic gris Mozaic bleu


      Page d'accueil par défaut

      Thème Mozaic : Accueil

      Charte typo


      Accueil du site | Contact | Plan du site | | Statistiques | visites : 22528 |

      Suivre la vie du site fr    ?    |    Les sites syndiqués OPML   ?

      Site réalisé avec SPIP 2.0.10 + AHUNTSIC

      Creative Commons License