Changeset 125283 in spip-zone


Ignore:
Timestamp:
Jun 23, 2020, 7:24:01 PM (3 weeks ago)
Author:
Eric Lupinacci
Message:

Ajout d'une table iso3166alternates qui permet d"ajouter des codes nationaux ou internationaux aux objets subdivisions.
Il est maintenant possible de lire plusieurs fichiers pour remplir une même table avec l'option 'multiple'

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
  • _plugins_/isocode/trunk/base/isocode_declarations.php

    r118140 r125283  
    1313 * Déclaration des nouvelles tables de la base de données propres au plugin.
    1414 *
    15  * Le plugin déclare 5 nouvelles tables ISO-639 issues de 2 bases de données (SIL et Library of Congress
    16  * uniquemet 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) :
    1717 *
    1818 * - `spip_iso639codes`, qui contient les codes ISO-639-3, 2 et 1,
     
    2626 * des étiquettes de langue construites selon la RFC 5646.
    2727 *
    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`
    2936 *
    3037 * @pipeline declarer_tables_principales
     
    3845function isocode_declarer_tables_principales($tables_principales) {
    3946
     47        // ---------------------------------------------------------------
     48        // Langues
    4049        // ---------------------------------------------------------------
    4150        // Table principale des codes de langue ISO-639 : spip_iso639codes
     
    153162                array('field' => &$table_scripts, 'key' => &$table_scripts_key);
    154163
    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
    157227        $table_countries = array(
    158228                'code_alpha2'     => "char(2) DEFAULT '' NOT NULL",       // The two-letter identifier
     
    183253                array('field' => &$table_countries, 'key' => &$table_countries_key);
    184254
     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
    185289        // ------------------------------------------------------------------
    186290        // Table des indicatifs des devises ISO-4217 : spip_iso4217currencies
     
    203307                array('field' => &$table_currencies, 'key' => &$table_currencies_key);
    204308
    205         // -----------------------------------------------------------------------------------------
    206         // Table reproduisant le registre IANA des sous-étiquettes de langues : spip_iana5646subtags
    207         $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 value
    210                 'description'    => "text DEFAULT '' NOT NULL",       // Descriptions of subtags separated by comma
    211                 'date_ref'       => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Subtag creation date
    212                 'no_script'      => "char(4) DEFAULT '' NOT NULL",     // The four letter script identifier not to be used for the subtag
    213                 'scope'          => "varchar(32) DEFAULT '' NOT NULL", // Scope indication : collection, macrolanguage...
    214                 'macro_language' => "char(3) DEFAULT '' NOT NULL",     // Macrolanguage to which subtag is refering to
    215                 'deprecated'     => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // Deprecated date if any
    216                 'preferred_tag'  => "char(3) DEFAULT '' NOT NULL",     // Preferred tag to be used instead the current subtag
    217                 'prefix'         => "char(3) DEFAULT '' NOT NULL",     // Prefix to be used thos the subtag except is a preferred tag exists
    218                 'comments'       => "text DEFAULT '' NOT NULL",        // Comments on subtag
    219                 '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_geoipcontinents
    231         $table_continents = array(
    232                 'code'     => "char(2) DEFAULT '' NOT NULL",       // The two-letter identifier
    233                 'label_en' => "varchar(255) DEFAULT '' NOT NULL",  // English name
    234                 'label_fr' => "varchar(255) DEFAULT '' NOT NULL",  // french name
    235                 'label'    => "text DEFAULT '' NOT NULL",          // Multiple langages label
    236                 '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_m49regions
    248         $table_regions = array(
    249                 'code_num' => "char(3) DEFAULT '' NOT NULL",       // The three-letter numeric identifier
    250                 'parent'   => "char(3) DEFAULT '' NOT NULL",       // The three-letter numeric identifier of parent
    251                 'label_en' => "varchar(255) DEFAULT '' NOT NULL",  // English name
    252                 'label_fr' => "varchar(255) DEFAULT '' NOT NULL",  // french name
    253                 'label'    => "text DEFAULT '' NOT NULL",          // Multiple langages label
    254                 '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_iso3166subdivisions
    266         $table_subdivisions = array(
    267                 'code_3166_2'   => "varchar(6) DEFAULT '' NOT NULL",    // ISO 3166-2 Subdivision identifier XX-YYY
    268                 '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 parent
    272                 'label'         => "text DEFAULT '' NOT NULL",          // Multilangage name
    273                 '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 
    284309        return $tables_principales;
    285310}
     
    308333        $interfaces['table_des_tables']['iso639families'] = 'iso639families';
    309334        $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';
    310339        $interfaces['table_des_tables']['iso3166countries'] = 'iso3166countries';
    311340        $interfaces['table_des_tables']['iso3166subdivisions'] = 'iso3166subdivisions';
     341        $interfaces['table_des_tables']['iso3166alternates'] = 'iso3166alternates';
     342
    312343        $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';
    316344
    317345        // Les traitements
  • _plugins_/isocode/trunk/ezrest/isocode.php

    r118610 r125283  
    1010
    1111$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',
    2020        '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'
    2525);
    26 
    2726
    2827// -----------------------------------------------------------------------
     
    3130
    3231/**
    33  * Récupère la liste des plugins de la table spip_plugins éventuellement filtrés par les critères
     32 * Récupère la liste des pays de la table spip_iso3166countries éventuellement filtrés par les critères
    3433 * additionnels positionnés dans la requête.
    35  * Chaque objet plugin est présenté comme un tableau dont tous les champs sont accessibles comme un
    36  * type PHP simple, entier, chaine ou tableau.
    3734 *
    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.
    3939 *
    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.
    4842 */
    4943function pays_collectionner($conditions, $filtres, $configuration) {
     
    7872}
    7973
    80 
    8174/**
    8275 * Détermine si la valeur du critère de région d'appartenance du pays est valide.
    8376 * La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec un code à 3 chiffres.
    8477 *
    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é.
    8981 *
    90  * @return bool
    91  *        `true` si la valeur est valide, `false` sinon.
     82 * @return bool `true` si la valeur est valide, `false` sinon.
    9283 */
    9384function pays_verifier_filtre_zone($zone, &$erreur) {
    94 
    9585        $est_valide = true;
    9686
     
    10393}
    10494
    105 
    10695/**
    10796 * Détermine si la valeur du continent d'appartenance du pays est valide.
     
    10998 * majuscules.
    11099 *
    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é.
    113103 *
    114  * @return bool
    115  *        `true` si la valeur est valide, `false` sinon.
     104 * @return bool `true` si la valeur est valide, `false` sinon.
    116105 */
    117106function pays_verifier_filtre_continent($continent, &$erreur) {
    118 
    119107        $est_valide = true;
    120108
  • _plugins_/isocode/trunk/inc/isocode_sourcer.php

    r118151 r125283  
    9999                                                }
    100100                                        } 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);
    102102                                        }
    103103                                }
     
    284284                }
    285285        } 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);
    299325                                }
    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);
    313329                        }
    314330                }
  • _plugins_/isocode/trunk/isocode_fonctions.php

    r100375 r125283  
    240240/**
    241241 * 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.
    243244 *
    244245 * @api
     
    252253        $services = array();
    253254
    254         if ($dossiers = glob(_DIR_PLUGIN_ISOCODE . '/services/*', GLOB_ONLYDIR)) {
     255        if ($dossiers = glob(_DIR_PLUGIN_ISOCODE . 'services/*', GLOB_ONLYDIR)) {
    255256                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                        }
    257261                }
    258262        }
     
    263267
    264268/**
    265  * Vérifie si le service demandé est fait bien partie de la liste des services disponibles.
     269 * Vérifie si le service demandé fait bien partie de la liste des services disponibles.
    266270 *
    267271 * @api
     
    279283
    280284        $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        ) {
    282289                $disponible = true;
    283290        }
  • _plugins_/isocode/trunk/lang/isocode_fr.php

    r118610 r125283  
    3434        'label_table_iana5646subtags'      => 'table reproduisant le registre IANA des sous-étiquettes de langues (RFC 5646)',
    3535        '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)',
    3738        'label_table_iso3166subdivisions'  => 'table des indicatifs des subdivisions des pays (ISO 3166-2)',
    3839        '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  
    177177                'unused_fields' => array(
    178178                        'language'        => '',
    179                 ),
    180                 'addon_fields' => array(
    181                         'insee'    => array(
    182                                 'ccnr'         => 'code_specific',
    183                         )
    184179                ),
    185180                'populating'   => 'file_csv',
Note: See TracChangeset for help on using the changeset viewer.