Changeset 125283 in spip-zone
- Timestamp:
- Jun 23, 2020, 7:24:01 PM (7 months ago)
- Location:
- _plugins_/isocode/trunk
- Files:
-
- 3 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/isocode/trunk
-
Property
subgit:lock:26a1ba482b8a6de7872d2370a87d6b9abe43205a
set to
2020-06-23T21:24:10.173
-
Property
subgit:lock:26a1ba482b8a6de7872d2370a87d6b9abe43205a
set to
-
_plugins_/isocode/trunk/base/isocode_declarations.php
r118140 r125283 13 13 * Déclaration des nouvelles tables de la base de données propres au plugin. 14 14 * 15 * Le plugin déclare 5 nouvelles tables ISO-639 issues de 2 bases de données (SIL et Library of Congress16 * uniqueme t pour les familles de langues) :15 * Le plugin déclare des tables ISO-639 issues de 2 bases de données (SIL et Library of Congress 16 * uniquement pour les familles de langues) : 17 17 * 18 18 * - `spip_iso639codes`, qui contient les codes ISO-639-3, 2 et 1, … … 26 26 * des étiquettes de langue construites selon la RFC 5646. 27 27 * 28 * Enfin, la plugin déclare une table `spip_iso15924countries` qui contient les indicatifs ISO-3166 des pays. 28 * Le plugin déclare aussi un ensemble de tables liées aux différents découpages géographiques, à savoir: 29 * - `spip_geoipcontinents` qui contient les indicatifs GeoIP des continents. 30 * - `spip_m49regions` qui contient les indicatifs M49 des zones géographiques englobant les pays. 31 * - `spip_iso3166countries` qui contient les indicatifs ISO-3166-1 des pays. 32 * - `spip_iso3166subdivisions` qui contient les indicatifs ISO-3166-2 des subdivisions des pays. 33 * 34 * Le plugin déclare aussi une table `spip_iso3166alternates` qui contient des codes nationaux ou supranationaux 35 * alternatifs aux codes IS0 3166 (NUTS, INSEE...), et la table des devises ISO-4217 `spip_iso4217currencies` 29 36 * 30 37 * @pipeline declarer_tables_principales … … 38 45 function isocode_declarer_tables_principales($tables_principales) { 39 46 47 // --------------------------------------------------------------- 48 // Langues 40 49 // --------------------------------------------------------------- 41 50 // Table principale des codes de langue ISO-639 : spip_iso639codes … … 153 162 array('field' => &$table_scripts, 'key' => &$table_scripts_key); 154 163 155 // ------------------------------------------------------------------------------------- 156 // Table des indicatifs des pays ISO-3166 et autres informations : spip_iso3166countries 164 // ----------------------------------------------------------------------------------------- 165 // Table reproduisant le registre IANA des sous-étiquettes de langues : spip_iana5646subtags 166 $table_subtags = array( 167 'type' => "varchar(16) DEFAULT '' NOT NULL", // Subtag type as language, variant, extlang, region, script... 168 'subtag' => "varchar(32) DEFAULT '' NOT NULL", // Subtag value 169 'description' => "text DEFAULT '' NOT NULL", // Descriptions of subtags separated by comma 170 'date_ref' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Subtag creation date 171 'no_script' => "char(4) DEFAULT '' NOT NULL", // The four letter script identifier not to be used for the subtag 172 'scope' => "varchar(32) DEFAULT '' NOT NULL", // Scope indication : collection, macrolanguage... 173 'macro_language' => "char(3) DEFAULT '' NOT NULL", // Macrolanguage to which subtag is refering to 174 'deprecated' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Deprecated date if any 175 'preferred_tag' => "char(3) DEFAULT '' NOT NULL", // Preferred tag to be used instead the current subtag 176 'prefix' => "char(3) DEFAULT '' NOT NULL", // Prefix to be used thos the subtag except is a preferred tag exists 177 'comments' => "text DEFAULT '' NOT NULL", // Comments on subtag 178 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp' 179 ); 180 181 $table_subtags_key = array( 182 'PRIMARY KEY' => 'type, subtag' 183 ); 184 185 $tables_principales['spip_iana5646subtags'] = 186 array('field' => &$table_subtags, 'key' => &$table_subtags_key); 187 188 // ------------------------------------------------------------------------------------- 189 // Découpages géographiques 190 // ------------------------------------------------------------------------------------- 191 // Table des indicatifs des continents GeoIP : spip_geoipcontinents 192 $table_continents = array( 193 'code' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier 194 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name 195 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name 196 'label' => "text DEFAULT '' NOT NULL", // Multiple langages label 197 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp' 198 ); 199 200 $table_continents_key = array( 201 'PRIMARY KEY' => 'code' 202 ); 203 204 $tables_principales['spip_geoipcontinents'] = 205 array('field' => &$table_continents, 'key' => &$table_continents_key); 206 207 // ------------------------------------------------------------------------------------- 208 // Table des indicatifs des régions du monde (arborescence) : spip_m49regions 209 $table_regions = array( 210 'code_num' => "char(3) DEFAULT '' NOT NULL", // The three-letter numeric identifier 211 'parent' => "char(3) DEFAULT '' NOT NULL", // The three-letter numeric identifier of parent 212 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name 213 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name 214 'label' => "text DEFAULT '' NOT NULL", // Multiple langages label 215 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp' 216 ); 217 218 $table_regions_key = array( 219 'PRIMARY KEY' => 'code_num' 220 ); 221 222 $tables_principales['spip_m49regions'] = 223 array('field' => &$table_regions, 'key' => &$table_regions_key); 224 225 // ------------------------------------------------------------------------------------- 226 // Table des indicatifs des pays ISO-3166-1 et autres informations : spip_iso3166countries 157 227 $table_countries = array( 158 228 'code_alpha2' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier … … 183 253 array('field' => &$table_countries, 'key' => &$table_countries_key); 184 254 255 // ------------------------------------------------------------------------------------- 256 // Table des subdivisions géographiques des pays (arborescence) suivant l'ISO 3166-2 : spip_iso3166subdivisions 257 $table_subdivisions = array( 258 'code_3166_2' => "varchar(6) DEFAULT '' NOT NULL", // ISO 3166-2 Subdivision identifier XX-YYY 259 'country' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier (ISO 3166 alpha2) 260 'type' => "varchar(48) DEFAULT '' NOT NULL", // Specific type by country in english (department, land...) 261 'parent' => "varchar(6) DEFAULT '' NOT NULL", // The ISO 3166-2 identifier of parent 262 'label' => "text DEFAULT '' NOT NULL", // Multilangage name 263 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp' 264 ); 265 266 $table_subdivisions_key = array( 267 'PRIMARY KEY' => 'code_3166_2', 268 ); 269 270 $tables_principales['spip_iso3166subdivisions'] = 271 array('field' => &$table_subdivisions, 'key' => &$table_subdivisions_key); 272 273 // ------------------------------------------------------------------------------------- 274 // Table des codes alternatifs à l'ISO 3166-2 (nationaux ou supra-nationaux) : spip_iso3166alternates 275 // C'est en quelque sorte une table de liens sans qui fonctionne avec les codes et pas un id. 276 $table_alternates = array( 277 "code_3166_2" => "varchar(6) DEFAULT '' NOT NULL", 278 "type_alter" => "varchar(16) DEFAULT '' NOT NULL", 279 "code_alter" => "varchar(10) DEFAULT '' NOT NULL", 280 ); 281 282 $table_alternates_key = array( 283 "PRIMARY KEY" => "code_3166_2,type_alter,code_alter", 284 ); 285 286 $tables_principales['spip_iso3166alternates'] = 287 array('field' => &$table_alternates, 'key' => &$table_alternates_key); 288 185 289 // ------------------------------------------------------------------ 186 290 // Table des indicatifs des devises ISO-4217 : spip_iso4217currencies … … 203 307 array('field' => &$table_currencies, 'key' => &$table_currencies_key); 204 308 205 // -----------------------------------------------------------------------------------------206 // Table reproduisant le registre IANA des sous-étiquettes de langues : spip_iana5646subtags207 $table_subtags = array(208 'type' => "varchar(16) DEFAULT '' NOT NULL", // Subtag type as language, variant, extlang, region, script...209 'subtag' => "varchar(32) DEFAULT '' NOT NULL", // Subtag value210 'description' => "text DEFAULT '' NOT NULL", // Descriptions of subtags separated by comma211 'date_ref' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Subtag creation date212 'no_script' => "char(4) DEFAULT '' NOT NULL", // The four letter script identifier not to be used for the subtag213 'scope' => "varchar(32) DEFAULT '' NOT NULL", // Scope indication : collection, macrolanguage...214 'macro_language' => "char(3) DEFAULT '' NOT NULL", // Macrolanguage to which subtag is refering to215 'deprecated' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Deprecated date if any216 'preferred_tag' => "char(3) DEFAULT '' NOT NULL", // Preferred tag to be used instead the current subtag217 'prefix' => "char(3) DEFAULT '' NOT NULL", // Prefix to be used thos the subtag except is a preferred tag exists218 'comments' => "text DEFAULT '' NOT NULL", // Comments on subtag219 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp'220 );221 222 $table_subtags_key = array(223 'PRIMARY KEY' => 'type, subtag'224 );225 226 $tables_principales['spip_iana5646subtags'] =227 array('field' => &$table_subtags, 'key' => &$table_subtags_key);228 229 // -------------------------------------------------------------------------------------230 // Table des indicatifs des continents GeoIP : spip_geoipcontinents231 $table_continents = array(232 'code' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier233 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name234 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name235 'label' => "text DEFAULT '' NOT NULL", // Multiple langages label236 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp'237 );238 239 $table_continents_key = array(240 'PRIMARY KEY' => 'code'241 );242 243 $tables_principales['spip_geoipcontinents'] =244 array('field' => &$table_continents, 'key' => &$table_continents_key);245 246 // -------------------------------------------------------------------------------------247 // Table des indicatifs des régions du monde (arborescence) : spip_m49regions248 $table_regions = array(249 'code_num' => "char(3) DEFAULT '' NOT NULL", // The three-letter numeric identifier250 'parent' => "char(3) DEFAULT '' NOT NULL", // The three-letter numeric identifier of parent251 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name252 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name253 'label' => "text DEFAULT '' NOT NULL", // Multiple langages label254 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp'255 );256 257 $table_regions_key = array(258 'PRIMARY KEY' => 'code_num'259 );260 261 $tables_principales['spip_m49regions'] =262 array('field' => &$table_regions, 'key' => &$table_regions_key);263 264 // -------------------------------------------------------------------------------------265 // Table des subdivisions géographiques des pays suivant la norme ISO 3166-2 : spip_iso3166subdivisions266 $table_subdivisions = array(267 'code_3166_2' => "varchar(6) DEFAULT '' NOT NULL", // ISO 3166-2 Subdivision identifier XX-YYY268 'code_specific' => "char(2) DEFAULT '' NOT NULL", // Specific Subdivision identifier by country (i.e. INSEE)269 'country' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier (ISO 3166 alpha2)270 'type' => "varchar(32) DEFAULT '' NOT NULL", // Specific type by country in english (department, land...)271 'parent' => "varchar(6) DEFAULT '' NOT NULL", // The ISO 3166-2 identifier of parent272 'label' => "text DEFAULT '' NOT NULL", // Multilangage name273 'maj' => 'timestamp DEFAULT current_timestamp ON UPDATE current_timestamp'274 );275 276 $table_subdivisions_key = array(277 'PRIMARY KEY' => 'code_3166_2',278 'KEY code_specific' => 'code_specific'279 );280 281 $tables_principales['spip_iso3166subdivisions'] =282 array('field' => &$table_subdivisions, 'key' => &$table_subdivisions_key);283 284 309 return $tables_principales; 285 310 } … … 308 333 $interfaces['table_des_tables']['iso639families'] = 'iso639families'; 309 334 $interfaces['table_des_tables']['iso15924scripts'] = 'iso15924scripts'; 335 $interfaces['table_des_tables']['iana5646subtags'] = 'iana5646subtags'; 336 337 $interfaces['table_des_tables']['geoipcontinents'] = 'geoipcontinents'; 338 $interfaces['table_des_tables']['m49regions'] = 'm49regions'; 310 339 $interfaces['table_des_tables']['iso3166countries'] = 'iso3166countries'; 311 340 $interfaces['table_des_tables']['iso3166subdivisions'] = 'iso3166subdivisions'; 341 $interfaces['table_des_tables']['iso3166alternates'] = 'iso3166alternates'; 342 312 343 $interfaces['table_des_tables']['iso4217currencies'] = 'iso4217currencies'; 313 $interfaces['table_des_tables']['iana5646subtags'] = 'iana5646subtags';314 $interfaces['table_des_tables']['geoipcontinents'] = 'geoipcontinents';315 $interfaces['table_des_tables']['m49regions'] = 'm49regions';316 344 317 345 // Les traitements -
_plugins_/isocode/trunk/ezrest/isocode.php
r118610 r125283 10 10 11 11 $GLOBALS['isocode']['pays']['champs'] = array( 12 'code_alpha2' => 'code',13 'code_alpha3' => 'code_a3',14 'code_num' => 'code_num',15 'label' => 'nom',16 'capital' => 'capitale',17 'area' => 'superficie',18 'population' => 'population',19 'code_continent' => 'continent',12 'code_alpha2' => 'code', 13 'code_alpha3' => 'code_a3', 14 'code_num' => 'code_num', 15 'label' => 'nom', 16 'capital' => 'capitale', 17 'area' => 'superficie', 18 'population' => 'population', 19 'code_continent' => 'continent', 20 20 'code_num_region' => 'zone', 21 'tld' => 'tld',22 'code_4217_3' => 'code_devise',23 'currency_en' => 'nom_devise',24 'phone_id' => 'indicatif_uit'21 'tld' => 'tld', 22 'code_4217_3' => 'code_devise', 23 'currency_en' => 'nom_devise', 24 'phone_id' => 'indicatif_uit' 25 25 ); 26 27 26 28 27 // ----------------------------------------------------------------------- … … 31 30 32 31 /** 33 * Récupère la liste des p lugins de la table spip_plugins éventuellement filtrés par les critères32 * Récupère la liste des pays de la table spip_iso3166countries éventuellement filtrés par les critères 34 33 * additionnels positionnés dans la requête. 35 * Chaque objet plugin est présenté comme un tableau dont tous les champs sont accessibles comme un36 * type PHP simple, entier, chaine ou tableau.37 34 * 38 * @uses plugin_normaliser_champs() 35 * @param array $conditions Conditions à appliquer au select 36 * @param array $filtres Tableau des critères de filtrage additionnels à appliquer au select. 37 * @param array $configuration Configuration de la collection utile pour savoir quelle fonction appeler pour 38 * construire chaque filtre. 39 39 * 40 * @param array $filtres 41 * Tableau des critères de filtrage additionnels à appliquer au select. 42 * @param array $configuration 43 * Configuration de la collection plugins utile pour savoir quelle fonction appeler pour construire chaque filtre. 44 * 45 * @return array 46 * Tableau des plugins dont l'index est le préfixe du plugin. 47 * Les champs de type id ou maj ne sont pas renvoyés. 40 * @return array Tableau des plugins dont l'index est le préfixe du plugin. 41 * Les champs de type id ou maj ne sont pas renvoyés. 48 42 */ 49 43 function pays_collectionner($conditions, $filtres, $configuration) { … … 78 72 } 79 73 80 81 74 /** 82 75 * Détermine si la valeur du critère de région d'appartenance du pays est valide. 83 76 * La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec un code à 3 chiffres. 84 77 * 85 * @param string $zone 86 * La valeur du critère région, soit son code ISO 3166-1 numérique (3 chiffres). 87 * @param string $extra 88 * Message complémentaire à renvoyer dans la réponse en cas d'erreur. 78 * @param string $zone La valeur du critère région, soit son code ISO 3166-1 numérique (3 chiffres). 79 * @param array $erreur Bloc d'erreur préparé au cas où la vérification retourne une erreur. Dans ce cas, le bloc 80 * et complété et renvoyé. 89 81 * 90 * @return bool 91 * `true` si la valeur est valide, `false` sinon. 82 * @return bool `true` si la valeur est valide, `false` sinon. 92 83 */ 93 84 function pays_verifier_filtre_zone($zone, &$erreur) { 94 95 85 $est_valide = true; 96 86 … … 103 93 } 104 94 105 106 95 /** 107 96 * Détermine si la valeur du continent d'appartenance du pays est valide. … … 109 98 * majuscules. 110 99 * 111 * @param string $prefixe 112 * La valeur du préfixe 100 * @param string $continent La valeur du critère région, soit son code ISO 3166-1 numérique (3 chiffres). 101 * @param array $erreur Bloc d'erreur préparé au cas où la vérification retourne une erreur. Dans ce cas, le bloc 102 * et complété et renvoyé. 113 103 * 114 * @return bool 115 * `true` si la valeur est valide, `false` sinon. 104 * @return bool `true` si la valeur est valide, `false` sinon. 116 105 */ 117 106 function pays_verifier_filtre_continent($continent, &$erreur) { 118 119 107 $est_valide = true; 120 108 -
_plugins_/isocode/trunk/inc/isocode_sourcer.php
r118151 r125283 99 99 } 100 100 } else { 101 spip_log("Le champ <${_titre}>n'existe pas dans la configuration de la table ${table}", 'isocode' . _LOG_INFO);101 spip_log("Le champ ${_titre} n'existe pas dans la configuration de la table ${table}", 'isocode' . _LOG_INFO); 102 102 } 103 103 } … … 284 284 } 285 285 } else { 286 // La source est un fichier. 287 // On construit son nom et on lit son contenu en fonction du type du fichier. 288 $fichier = find_in_path("services/${service}/${table}{$config['extension']}"); 289 if (file_exists($fichier) and ($sha = sha1_file($fichier))) { 290 if ($config['populating'] == 'file_csv') { 291 $lignes = file($fichier); 292 if ($lignes) { 293 // La première ligne d'un CSV contient toujours les titres des colonnes. 294 // On sauvegarde ces titres dans une variable et on élimine la ligne du contenu retourné. 295 $titres = explode($config['delimiter'], trim(array_shift($lignes), "\r\n")); 296 $titres = array_map('trim', $titres); 297 // On renvoie le contenu sans titre 298 $contenu = $lignes; 286 // La source est un ou plusieurs fichier (option multiple à vrai). 287 if (empty($config['multiple'])) { 288 // On construit son nom et on lit son contenu en fonction du type du fichier. 289 $fichiers[] = find_in_path("services/${service}/${table}{$config['extension']}"); 290 } else { 291 // On cherche les fichiers constitutifs de la table qui sont toujours de la forme table_*.extension 292 $pattern = "services/${service}/${table}_*{$config['extension']}"; 293 if (!$fichiers = glob(_DIR_PLUGIN_ISOCODE . $pattern)) { 294 $fichiers = array(); 295 } 296 } 297 298 foreach ($fichiers as $_fichier) { 299 if (file_exists($_fichier) and ($sha = sha1_file($_fichier))) { 300 // On extrait le contenu du fichier 301 $contenu_fichier = array(); 302 if ($config['populating'] == 'file_csv') { 303 $lignes = file($_fichier); 304 if ($lignes) { 305 // La première ligne d'un CSV contient toujours les titres des colonnes. 306 // On sauvegarde ces titres dans une variable et on élimine la ligne du contenu retourné. 307 $titres = explode($config['delimiter'], trim(array_shift($lignes), "\r\n")); 308 $titres = array_map('trim', $titres); 309 // On renvoie le contenu sans titre 310 $contenu_fichier = $lignes; 311 } 312 } elseif ($config['populating'] == 'file_xml') { 313 include_spip('inc/flock'); 314 lire_fichier($_fichier, $xml); 315 $arbre = json_decode(json_encode(simplexml_load_string($xml)), true); 316 317 include_spip('inc/filtres'); 318 if (table_valeur($arbre, $config['base'], '')) { 319 $contenu_fichier = table_valeur($arbre, $config['base'], ''); 320 } 321 } elseif ($config['populating'] == 'file_json') { 322 include_spip('inc/flock'); 323 lire_fichier($_fichier, $json); 324 $contenu_fichier = json_decode($json, true); 299 325 } 300 } elseif ($config['populating'] == 'file_xml') { 301 include_spip('inc/flock'); 302 lire_fichier($fichier, $xml); 303 $arbre = json_decode(json_encode(simplexml_load_string($xml)), true); 304 305 include_spip('inc/filtres'); 306 if (table_valeur($arbre, $config['base'], '')) { 307 $contenu = table_valeur($arbre, $config['base'], ''); 308 } 309 } elseif ($config['populating'] == 'file_json') { 310 include_spip('inc/flock'); 311 lire_fichier($fichier, $json); 312 $contenu = json_decode($json, true); 326 327 // On additionne les contenus de chaque fichier 328 $contenu = array_merge($contenu, $contenu_fichier); 313 329 } 314 330 } -
_plugins_/isocode/trunk/isocode_fonctions.php
r100375 r125283 240 240 /** 241 241 * Retourne la liste des services disponibles pour le chargement des tables de codes ISO. 242 * La fonction lit les sous-répertoires du répertoire `services/` du plugin. 242 * La fonction lit les sous-répertoires du répertoire `services/` du plugin et vérifie qu'un fichier 243 * d'API existe. 243 244 * 244 245 * @api … … 252 253 $services = array(); 253 254 254 if ($dossiers = glob(_DIR_PLUGIN_ISOCODE . ' /services/*', GLOB_ONLYDIR)) {255 if ($dossiers = glob(_DIR_PLUGIN_ISOCODE . 'services/*', GLOB_ONLYDIR)) { 255 256 foreach ($dossiers as $_dossier) { 256 $services[] = strtolower(basename($_dossier)); 257 $service = strtolower(basename($_dossier)); 258 if (file_exists($f = _DIR_PLUGIN_ISOCODE . "services/${service}/${service}_api.php")) { 259 $services[] = $service; 260 } 257 261 } 258 262 } … … 263 267 264 268 /** 265 * Vérifie si le service demandé estfait bien partie de la liste des services disponibles.269 * Vérifie si le service demandé fait bien partie de la liste des services disponibles. 266 270 * 267 271 * @api … … 279 283 280 284 $disponible = false; 281 if ($service and in_array(strtolower($service), isocode_lister_services())) { 285 if ( 286 $service 287 and in_array(strtolower($service), isocode_lister_services()) 288 ) { 282 289 $disponible = true; 283 290 } -
_plugins_/isocode/trunk/lang/isocode_fr.php
r118610 r125283 34 34 'label_table_iana5646subtags' => 'table reproduisant le registre IANA des sous-étiquettes de langues (RFC 5646)', 35 35 'label_table_iso15924scripts' => 'table des indicatifs d\'écritures (ISO 15924)', 36 'label_table_iso3166countries' => 'table des indicatifs des pays (ISO 3166)', 36 'label_table_iso3166alternates' => 'table des codes alternatifs des subdivisions', 37 'label_table_iso3166countries' => 'table des indicatifs des pays (ISO 3166-1)', 37 38 'label_table_iso3166subdivisions' => 'table des indicatifs des subdivisions des pays (ISO 3166-2)', 38 39 'label_table_m49regions' => 'table des indicatifs des régions du monde selon l\'ONU (UN M.49)', -
_plugins_/isocode/trunk/services/iso/iso_api.php
r118155 r125283 177 177 'unused_fields' => array( 178 178 'language' => '', 179 ),180 'addon_fields' => array(181 'insee' => array(182 'ccnr' => 'code_specific',183 )184 179 ), 185 180 'populating' => 'file_csv',
Note: See TracChangeset
for help on using the changeset viewer.