Changeset 100274 in spip-zone for _plugins_/isocode
- Timestamp:
- Oct 30, 2016, 5:58:41 PM (4 years ago)
- Location:
- _plugins_/isocode/trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/isocode/trunk/base/isocode_declarations.php
r100264 r100274 151 151 array('field' => &$table_scripts, 'key' => &$table_scripts_key); 152 152 153 // -------------------------------------------------------------- 154 // Table des indicatifs des pays ISO-3166 : spip_iso3166countries153 // ------------------------------------------------------------------------------------- 154 // Table des indicatifs des pays ISO-3166 et autres informations : spip_iso3166countries 155 155 $table_countries = array( 156 'code_alpha2' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier 157 'code_alpha3' => "char(3) DEFAULT '' NOT NULL", // The three-letter identifier 158 'code_num' => "char(3) DEFAULT '' NOT NULL", // Numeric identifier 159 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name 160 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name 161 'maj' => 'timestamp' 156 'code_alpha2' => "char(2) DEFAULT '' NOT NULL", // The two-letter identifier 157 'code_alpha3' => "char(3) DEFAULT '' NOT NULL", // The three-letter identifier 158 'code_num' => "char(3) DEFAULT '' NOT NULL", // Numeric identifier 159 'label_en' => "varchar(255) DEFAULT '' NOT NULL", // English name 160 'label_fr' => "varchar(255) DEFAULT '' NOT NULL", // french name 161 'capital' => "varchar(255) DEFAULT '' NOT NULL", // Capital name 162 'area' => "int DEFAULT 0 NOT NULL", // Area in squared km 163 'population' => "int DEFAULT 0 NOT NULL", // Inhabitants count 164 'continent_code' => "char(2) DEFAULT '' NOT NULL", // Continent code 165 'tld' => "char(3) DEFAULT '' NOT NULL", // Tld - Top-Level Domain 166 'code_4217_3' => "char(3) DEFAULT '' NOT NULL", // Currency code ISO-4217 167 'currency_en' => "varchar(255) DEFAULT '' NOT NULL", // Currency English name 168 'phone_id' => "varchar(16) DEFAULT '' NOT NULL", // Phone id 169 'maj' => 'timestamp' 162 170 ); 163 171 -
_plugins_/isocode/trunk/lang/isocode_fr.php
r100264 r100274 10 10 11 11 // E 12 'erreur_charger_table' => 'Une erreur s\'est produite lors du chargement de s tables @tables@.',13 'erreur_vider_table' => 'Une erreur s\'est produite lors du vidage de s tables @tables@.',12 'erreur_charger_table' => 'Une erreur s\'est produite lors du chargement de la ou des tables @tables@.', 13 'erreur_vider_table' => 'Une erreur s\'est produite lors du vidage de la ou des tables @tables@.', 14 14 'explication_action_table' => 'Si la table est déjà chargée en base de données elle sera vidée avant le chargement.', 15 15 … … 37 37 38 38 // N 39 'notice_charger_table' => 'Aucune mise à jour n\'est nécessaire sur l es tables @tables@.',39 'notice_charger_table' => 'Aucune mise à jour n\'est nécessaire sur la ou les tables @tables@.', 40 40 'notice_liste_aucune_table' => 'Aucune table de codes ISO n\'a encore été chargée en base de données. Utiliser le formulaire ci-dessous pour y remédier.', 41 41 -
_plugins_/isocode/trunk/services/iso/iso_api.php
r99066 r100274 118 118 'Numeric' => 'code_num', 119 119 ), 120 'addon_fields' => array( 121 'geonames' => array( 122 'Capital' => 'capital', 123 'Area(in sq km)' => 'area', 124 'Population' => 'population', 125 'Continent' => 'code_continent', 126 'tld' => 'tld', 127 'CurrencyCode' => 'code_4217_3', 128 'CurrencyName' => 'currency_en', 129 'Phone' => 'phone_id' 130 ) 131 ), 120 132 'populating' => 'file_csv', 121 133 'delimiter' => ';', … … 123 135 ), 124 136 ); 137 125 138 126 139 // ---------------------------------------------------------------------------- … … 243 256 return $records; 244 257 } 258 259 260 function iso3166countries_complete_by_table($records) { 261 262 // Initialisation des champs additionnels 263 $add_columns = array(); 264 $geo_to_spip = $GLOBALS['isocode']['iso']['tables']['iso3166countries']['addon_fields']['geonames']; 265 266 // Lecture du fichier CSV geonames-countryInfo.txt pour récupérer les informations additionnelles. 267 // Le délimiteur est une tabulation. 268 $file = find_in_path("services/iso/iso3166countries-geonames-info.txt"); 269 $delimiter = "\t"; 270 $lines = file($file); 271 if ($lines) { 272 $headers = array(); 273 foreach ($lines as $_number => $_line) { 274 $values = explode($delimiter, trim($_line, "\r\n")); 275 if ($_number == 0) { 276 // Stockage des noms de colonnes car la première ligne contient toujours le header et de 277 // l'index correspondant au code ISO-3166 alpha2 du pays qui se nomme ISO dans le fichier CSV. 278 $headers = $values; 279 $index_iso3166_alpha2 = array_search('ISO', $headers); 280 } else { 281 // On extrait de chaque ligne les informations additionnelles ainsi que le code alpha2 du pays 282 // qui servira d'index du tableau constitué. 283 // On ne sélectionne que les colonnes correspondant à des champs additionnels. 284 $fields = array(); 285 foreach ($headers as $_cle => $_header) { 286 if (array_key_exists($_header, $geo_to_spip)) { 287 $fields[$geo_to_spip[trim($_header)]] = isset($values[$_cle]) ? trim($values[$_cle]) : ''; 288 } 289 } 290 if (isset($values[$index_iso3166_alpha2])) { 291 $add_columns[$values[$index_iso3166_alpha2]] = $fields; 292 } 293 } 294 } 295 } 296 297 298 // On complète maintenant le tableau des enregistrements avec la colonne additionnelle hierarchy et la colonne 299 // dérivée parent qui ne contient que le code alpha-3 de la famille parente si elle existe. 300 foreach ($records as $_cle => $_record) { 301 $code = $_record['code_alpha2']; 302 if (isset($add_columns[$code])) { 303 $records[$_cle] = array_merge($records[$_cle], $add_columns[$code]); 304 } 305 } 306 307 return $records; 308 }
Note: See TracChangeset
for help on using the changeset viewer.