Changeset 97788 in spip-zone


Ignore:
Timestamp:
May 16, 2016, 7:49:28 AM (4 years ago)
Author:
eric@…
Message:

Ajout d'une colonne parent pour simuler une hiérarchie.

Location:
_plugins_/codes_langues/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/codes_langues/trunk/base/codelang_declarations.php

    r97783 r97788  
    117117                'scope'          => "char(1) DEFAULT '' NOT NULL",      // C(ollective) always
    118118                'code_set'       => "varchar(32) DEFAULT '' NOT NULL",  // Any combinaison of 639-5 and 639-2 separed by comma
    119                 'parent'         => "varchar(32) DEFAULT '' NOT NULL",  // List of 639-5 identifiers separated by comma
     119                'hierarchy'      => "varchar(32) DEFAULT '' NOT NULL",  // List of 639-5 identifiers separated by comma
     120                'parent'         => "char(3) DEFAULT '' NOT NULL",      // The parent three-letter 639-5 identifier
    120121                'maj'            => 'timestamp'
    121122        );
     
    159160 * @pipeline declarer_tables_interfaces
    160161 *
    161  * @param array $interface
     162 * @param array $interfaces
    162163 *        Tableau global des informations tierces sur les tables de la base de données
    163164 *
  • _plugins_/codes_langues/trunk/services/iso/iso_api.php

    r97783 r97788  
    7272                        ),
    7373                        'loc'                   => array(
    74                                 'Hierarchy'         => 'parent'
     74                                'Hierarchy'         => 'hierarchy'
    7575                        )
    7676                )
     
    245245        }
    246246
    247         // On complète maintenant le tableau des enregistrements avec la colonne additionnelle hierarchy
     247        // On complète maintenant le tableau des enregistrements avec la colonne additionnelle hierarchy et la colonne
     248        // dérivée parent qui ne contient que le code alpha-3 de la famille parente si elle existe.
    248249        foreach($records as $_cle => $_record) {
    249250                $code = $_record['code_639_5'];
     251                $records[$_cle]['parent'] = '';
    250252                if (isset($hierarchies[$code])) {
    251253                        $records[$_cle][$loc_to_spip['Hierarchy']] = $hierarchies[$code];
     254                        // Calcul du parent : si la hierarchie ne contient qu'un code c'est qu'il n'y a pas de parent.
     255                        // Sinon, le parent est le premier code qui précède le code du record.
     256                        $parents = explode(',', $hierarchies[$code]);
     257                        if (count($parents) > 1) {
     258                                array_pop($parents);
     259                                $records[$_cle]['parent'] = array_pop($parents);
     260                        }
    252261                } else {
    253262                        $records[$_cle][$loc_to_spip['Hierarchy']] = '';
Note: See TracChangeset for help on using the changeset viewer.