Changeset 100292 in spip-zone for _plugins_/isocode


Ignore:
Timestamp:
Oct 31, 2016, 11:18:39 AM (4 years ago)
Author:
eric@…
Message:

Ajout de la table des devises (ISO-4217)
On ajoute un filtre dans les fonctions de lecture de fichier xml et csv afin de ne récupérer que les données configurées. A voir si il faut appliquer cette logique sur la lecture d'une page HTML.

Location:
_plugins_/isocode/trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/isocode/trunk/base/isocode_declarations.php

    r100274 r100292  
    177177                array('field' => &$table_countries, 'key' => &$table_countries_key);
    178178
     179        // ------------------------------------------------------------------
     180        // Table des indicatifs des devises ISO-4217 : spip_iso4217currencies
     181        $table_currencies = array(
     182                'code_4217_3'    => "char(3) DEFAULT '' NOT NULL",       // The three-letter identifier
     183                'code_num'       => "char(3) DEFAULT '' NOT NULL",       // Numeric identifier
     184                'label_en'       => "varchar(255) DEFAULT '' NOT NULL",  // English name
     185                'label_fr'       => "varchar(255) DEFAULT '' NOT NULL",  // french name
     186                'symbol'         => "char(8) DEFAULT '' NOT NULL",       // Currency symbol
     187                'minor_unit'     => "int DEFAULT 0 NOT NULL",            // Minor units
     188                'maj'            => 'timestamp'
     189        );
     190
     191        $table_currencies_key = array(
     192                'PRIMARY KEY' => 'code_4217_3'
     193        );
     194
     195        $tables_principales['spip_iso4217currencies'] =
     196                array('field' => &$table_currencies, 'key' => &$table_currencies_key);
     197
    179198        // -----------------------------------------------------------------------------------------
    180199        // Table reproduisant le registre IANA des sous-étiquettes de langues : spip_iana5646subtags
     
    228247        $interfaces['table_des_tables']['iso15924scripts'] = 'iso15924scripts';
    229248        $interfaces['table_des_tables']['iso3166countries'] = 'iso3166countries';
     249        $interfaces['table_des_tables']['iso4217currencies'] = 'iso4217currencies';
    230250        $interfaces['table_des_tables']['iana5646subtags'] = 'iana5646subtags';
    231251
  • _plugins_/isocode/trunk/inc/isocode_read_file_csv.php

    r100264 r100292  
    7171                                                $fields = array();
    7272                                                foreach ($headers as $_cle => $_header) {
    73                                                         $fields[$fields_config[trim($_header)]] = isset($values[$_cle]) ? trim($values[$_cle]) : '';
     73                                                        // Seuls les champs identifiés dans la configuration sont récupérés dans le fichier
     74                                                        if (isset($fields_config[trim($_header)])) {
     75                                                                $fields[$fields_config[trim($_header)]] = isset($values[$_cle]) ? trim($values[$_cle]) : '';
     76                                                        }
    7477                                                }
    7578                                                // Si besoin on appelle une fonction pour chaque enregistrement afin de le compléter
  • _plugins_/isocode/trunk/inc/isocode_read_page_text.php

    r100264 r100292  
    6565                                $elements = explode($parsing_config['element']['delimiter'], $flux['page']);
    6666                        } else {
    67                                 // C'est une regexp... à compléter TODO
     67                                // TODO : C'est une regexp... à compléter
    6868                        }
    6969
  • _plugins_/isocode/trunk/services/iso/iso_api.php

    r100274 r100292  
    2323         */
    2424        define('_ISOCODE_LOC_ISO639_5_HIERARCHY', 'https://www.loc.gov/standards/iso639-5/hier.php');
     25}
     26if (!defined('_ISOCODE_IOTA_ISO4217_SYMBOL')) {
     27        /**
     28         * URL de base pour charger la page du tableau des devises ISO-4217 sur le site
     29         * de IOTA Finance qui permet de compléter les informations de base de l'ISO-4217.
     30         */
     31        define('_ISOCODE_IOTA_ISO4217_SYMBOL', 'http://www.iotafinance.com/Codes-ISO-Devises.html');
    2532}
    2633
     
    127134                                'CurrencyCode'   => 'code_4217_3',
    128135                                'CurrencyName'   => 'currency_en',
    129                                 'Phone'          => 'phone_id'
     136                                'Phone'          => 'phone_id',
    130137                        )
    131138                ),
     
    133140                'delimiter'    => ';',
    134141                'extension'    => '.txt'
     142        ),
     143        'iso4217currencies'   => array(
     144                'basic_fields' => array(
     145                        'CcyNm'      => 'label_en',
     146                        'Ccy'        => 'code_4217_3',
     147                        'CcyNbr'     => 'code_num',
     148                        'CcyMnrUnts' => 'minor_unit',
     149                ),
     150                'addon_fields'   => array(
     151                        'iota' => array(
     152                                'Symbol devise' => 'symbol',
     153                                'Devise'        => 'label_fr',
     154                        )
     155                ),
     156                'populating'   => 'file_xml',
     157                'delimiter'    => '',
     158                'extension'    => '.xml'
    135159        ),
    136160);
     
    284308                                $fields = array();
    285309                                foreach ($headers as $_cle => $_header) {
    286                                         if (array_key_exists($_header, $geo_to_spip)) {
     310                                        if (isset($geo_to_spip[trim($_header)])) {
    287311                                                $fields[$geo_to_spip[trim($_header)]] = isset($values[$_cle]) ? trim($values[$_cle]) : '';
    288312                                        }
Note: See TracChangeset for help on using the changeset viewer.