Liste des pays avec codes ISO 3166-1

Les listes de codes de l’ISO 3166-1

Propose une boucle “pays” qui s’utilise comme suit (exemple) :

<B_p>#PAGINATION
<table class="spip" width="100%">
	<thead>
	<tr class="row_first">
		<th><:pays:id_pays:></th>
		<th><:pays:code:></th>
		<th><:pays:nom:></th>
	</tr>
	</thead>
	<tbody>
	<BOUCLE_p(pays){par nom}{pagination 20}>
	<tr[ class="(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})"]>
		<td>#ID_PAYS</td>
		<td>#CODE</td>
		<td>#NOM</td>
	</tr>
	</BOUCLE_p>
	</tbody>
</table>

Le plugin installe une nouvelle table “pays” qui reprend la liste des pays issus de spip_geographie (mais seulement les pays) en l’enrichissant des codes à deux caractères établis pas l’Organisation Internationale de Normalisation (ISO). Des correspondances peuvent ainsi êtres faites avec d’autres bases de données donnant ce champ comme clé d’index.

Ce plugin est par exemple utilisé dans les plugins Coordonnées et Contacts et Organisations (C&O) pour générer la liste des pays dans une adresse postale, et dans une appli développée pour un service export.

Comme indiqué sur le site de l’ISO : «Les noms de pays (forme courte) de l’ISO 3166-1 et les codes alpha-2 sont mis à disposition par l’ISO gratuitement pour un usage interne et à des fins non commerciales

Ce plugin est accompagné d’un court exemple d’utilisation de la boucle pays. Pour afficher l’exemple, une fois le plugin installé affichez la page [1]: spip.php?page=demo/pays. Vous obtiendrez une liste des pays du monde similaire à celle-ci :

Mise à jour 3.1

Le plugin Pays permet désormais de lier un Pays à n’importe quel objet SPIP. La liste des objets qui peuvent être liés à des pays est paramétrable sur la page de configuration du plugin (?exec=admin_plugin ou menu Configuration > Gestion des plugins) :

Ensuite, sur ces objets une nouveau bloc permet d’effecter un ou plusieurs pays à l’objet :

Footnotes

[1Vous devez être webmestre du site pour voir cette page

l’icône du globe terrestre provient du site tutsps.com

updated on 6 April 2020

Discussion

18 discussions

  • 3

    Bonjour,
    En v3.09, j’ai un soucis, il me manque les 50 derniers pays. J’ai désactivé , supprimé réactivé, etc... rien n’y fait , la base spip_pays reste à 200 enregistrements!

    • Pareil chez moi : le peuplement de la base s’arrête au 200e pays, les Samoa...

      Je ne sais pas si l’auteur verra ce commentaire, donc si le plugin n’est pas mis à jour dans l’immédiat, il faut télécharger le plugin et retirer la ligne 260 du fichier v3.0.9/base/peupler_base.php

      (il y a deux lignes identiques, on retrouve bien un pb dans les logs à l’insertion en base du dernier paquet de 50 pays, d’où l’arrêt au 200e)

      Je ferais bien remonter sur une plateforme de dev mais je ne sais plus trop où ça se passe... si qqun sait je ferai suivre.

      Merci pour ce plugin en tout cas :-)

    • Bonjour,

      Je n’avais pas vu vos messages. J’ai corrigé ces 2 erreurs :
      -  z83531 -> http://zone.spip.org/trac/spip-zone/changeset/83531
      -  z83532 -> http://zone.spip.org/trac/spip-zone/changeset/83532

    • merci Teddy !

    Reply to this message

  • J’ai ajouté (version 2.1.1 - http://zone.spip.org/trac/spip-zone/changeset/60302) un script pour migrer une colonne d’une table SQL qui a des pays écrits en dur (en français) vers un id_pays. On remplace le texte par un id donc. Ça s’utilise comme ça :

    Dans un squelettes/mig.html :

    #CACHE{0}
    <?php
    include_spip('outils/migration_nom_pays');
    // pour une colonne 'pays' dans 'spip_mots'
    // migre et affiche un resultat des operations
    migrer_pays_table_et_bilan('spip_mots', 'pays');
    ?>

    Puis :
    /?page=mig sur votre site. Et hop.

    Il est possible qu’il y ait des erreurs (pays absents), auquel cas, il faudra corriger ceux là à la main :)

    Reply to this message

  • 1

    les noms des pays sont stockés dans un champ texte de la base, sous la forme d’une balise SPIP <multi>; ces noms sont disponibles en [fr],[en],[de],[es],[it],[nl] et [pt]; les titres de balise pour l’interface du plugin sont stockés dans 2 fichiers de langue, seulement dispo en [fr] et [en].

    Selon le contexte de la page (variable ?lang=xx dans l’url) l’affichage des noms de pays change.

    • outre la traduction affichée, il peut être intéressant d’avoir le nom officiel dans la langue officielle (qui peut ne pas être l’anglais ou le français et donc différer de l’appellation officielle de l’ONU...)

      il y a un nouvel état africain qui vient de naitre... il faudra penser à mettre à jour dès que son code sera disponible.

    Reply to this message

  • 3

    Est ce possible de les reprendre dans le plugin forms et tables afin de proposer dans un formulaire une liste de pays?

    • Bonjour,

      Livrée avec le plugin, il y a une “saisie” qui s’appelle “pays.html”. Elle génère directement une liste déroulante avec tous les pays, que l’on peut appeler ensuite dans les formulaires SPIP.

      Voici un exemple d’appel de la saisie depuis un formulaire SPIP :

      [(#SAISIE{pays, pays, label=<:cop:label_pays:>,defaut=70})]

      L’instruction defaut =70 indique que le pays N°70 (la France) apparait sélectionnée dans la liste.

      Prenons l’exemple du plugin “coordonnées” qui utilise le plugin “pays”. Dans le formulaire qui permet de saisir une adresse postale, le champ “pays” est listé par cette saisie. Voici un extrait du code du formulaire en question :

      <form method='post' action='[(#ENV{action})]'><div>
      	#ACTION_FORMULAIRE{#ENV{action}}
      	<input type='hidden' name='id_adresse' value='#ENV{id_adresse}' />
      	<input type='hidden' name='objet' value='#ENV{objet}' />
      	<input type='hidden' name='id_objet' value='#ENV{id_objet}' />
      	<ul>
      		[(#SAISIE{input, voie, label=<:cop:label_voie:>})]
      		[(#SAISIE{input, complement, label=<:cop:label_complement:>})]
      		[(#SAISIE{input, boite_postale, label=<:cop:label_boite_postale:>})]
      		[(#SAISIE{input, code_postal, label=<:cop:label_code_postal:>})]
      		[(#SAISIE{input, ville, label=<:cop:label_ville:>})]
      		[(#SAISIE{pays, pays, label=<:cop:label_pays:>,defaut=70})]
      		[(#SAISIE{input, type_adresse,
      			label=<:cop:label_type_adresse:>,
      			explication=<:cop:explication_type_adresse:>})]
      	</ul>
      	[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
      	<!--extra-->
      	<p class='boutons'>
      		<input type='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
      	</p>
       
      </div></form>

      En espérant que cela te soit utile,

      — 
      Cyril

    • Merci beaucoup. Par contre dans forms et tables doit voir comment faire, car les types de champs ajoutables sont déjà définis et aucun ne permet l’ajout d’un fichier, puis idéalement faudrait aussi que ca gère le multilinguisme.

    • pays n°70 ? pourquoi ne pas utiliser directement les code ISO-2 qui sont pourtant non-ambigus ? :(
      pourrait-on reprendre le même exemple montrant l’usage de ces codes ?

    Reply to this message

  • arriverait on à créer un groupe de mots clés “pays” qui créerait automatiquement un mot clé par pays en attribuant le code iso dans le descriptif du mot clé par ex ?

    Reply to this message

  • Bonjour,

    J’ai juste un petit soucis d’activation, lorsque je veux l’activer sur la version 1.0.6 - stable, et Spip 2.1.10 [17657], j’ai:

    Impossible d’activer le plugin ../plugins/auto/pays
    

    * Nécessite SPIP en version [2.0.9;3.0.*] minimum.

    Je peux l’activer en modifiant manuellement par

            <necessite id="SPIP" version="[2.0.9;]" />

    Mais je suis persuadé que ce n’est pas la bonne façon :)

    Reply to this message

  • 1

    le plugin est excellent.
    Le seul petit bémol c’est que je vois pas certain pays dans la liste des pays de ce plugin.
    Pour l’instant c’est tout ce que j’ai noté.
    Bon travail !

    • il y avait un doublon dans la liste des codes alphabétiques qui empêchait le peuplement complet de la base (227 pays chargés au lieu de 244); merci d’avoir remonté le bug ;-) corrigé en version 1.0.4 (révision [40033]);

    Reply to this message

  • Comment se passe le multilinguisme ?

    Reply to this message

Ajouter un commentaire

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom