Changeset 110364 in spip-zone


Ignore:
Timestamp:
May 24, 2018, 4:03:24 PM (4 weeks ago)
Author:
abelass@…
Message:

espace

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/prix_objets/trunk/base/prix_objets.php

    r110362 r110364  
    1212        return;
    1313
    14         /**
    15         * Déclaration des alias de tables et filtres automatiques de champs
    16         *
    17         * @pipeline declarer_tables_interfaces
    18         * @param array $interfaces
    19         *     Déclarations d'interface pour le compilateur
    20         * @return array
    21         *     Déclarations d'interface pour le compilateur
    22         */
    23         function prix_objets_declarer_tables_interfaces($tables_interfaces) {
    24                 $tables_interfaces['table_des_tables']['prix_objets'] = 'prix_objets';
     14/**
     15 * Déclaration des alias de tables et filtres automatiques de champs
     16 *
     17 * @pipeline declarer_tables_interfaces
     18 * @param array $interfaces
     19 *     Déclarations d'interface pour le compilateur
     20 * @return array
     21 *     Déclarations d'interface pour le compilateur
     22 */
     23function prix_objets_declarer_tables_interfaces($tables_interfaces) {
     24        $tables_interfaces['table_des_tables']['prix_objets'] = 'prix_objets';
    2525
    26                 return $tables_interfaces;
    27         }
     26        return $tables_interfaces;
     27}
    2828
    29         /**
    30          * Déclaration des tables principales.
    31          *
    32          * @pipeline declarer_tables_interfaces
    33          * @param array $tables_principales
    34          *     Déclarations des tables principales pour le compilateur
    35          * @return array
    36          *     Déclarations des tables principales pour le compilateur
    37          */
    38         function prix_objets_declarer_tables_principales($tables_principales) {
    39                 $spip_prix_objets = array(
    40                         "id_prix_objet" => "bigint(21) NOT NULL",
    41                         "id_prix_objet_source" => "bigint(21) NOT NULL",
    42                         'objet' => 'varchar(25) not null default ""',
    43                         "id_objet" => "bigint(21) NOT NULL",
    44                         "titre" => "varchar(255)  DEFAULT '' NOT NULL",
    45                         "reference" => "varchar(255)  DEFAULT '' NOT NULL",
    46                         "code_devise" => "varchar(3) NOT NULL",
    47                         "prix_ht" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
    48                         "prix" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
    49                         "taxe" => "varchar(10)  DEFAULT '' NOT NULL",
    50                         'extension' => 'varchar(50) not null default ""',
    51                         "id_extension" => "bigint(21) NOT NULL",
    52                         "rang_lien" => "int(4) NOT NULL DEFAULT '0'",
     29/**
     30 * Déclaration des tables principales.
     31 *
     32 * @pipeline declarer_tables_interfaces
     33 * @param array $tables_principales
     34 *     Déclarations des tables principales pour le compilateur
     35 * @return array
     36 *     Déclarations des tables principales pour le compilateur
     37 */
     38function prix_objets_declarer_tables_principales($tables_principales) {
     39        $spip_prix_objets = array(
     40                "id_prix_objet" => "bigint(21) NOT NULL",
     41                "id_prix_objet_source" => "bigint(21) NOT NULL",
     42                'objet' => 'varchar(25) not null default ""',
     43                "id_objet" => "bigint(21) NOT NULL",
     44                "titre" => "varchar(255)  DEFAULT '' NOT NULL",
     45                "reference" => "varchar(255)  DEFAULT '' NOT NULL",
     46                "code_devise" => "varchar(3) NOT NULL",
     47                "prix_ht" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
     48                "prix" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
     49                "taxe" => "varchar(10)  DEFAULT '' NOT NULL",
     50                'extension' => 'varchar(50) not null default ""',
     51                "id_extension" => "bigint(21) NOT NULL",
     52                "rang_lien" => "int(4) NOT NULL DEFAULT '0'",
     53        );
     54
     55        $spip_prix_objets_key = array(
     56                "PRIMARY KEY" => "id_prix_objet",
     57                "KEY id_objet" => "id_prix_objet_source,id_objet,objet,id_extension,extension"
     58        );
     59
     60        $spip_prix_objets_join = array(
     61                "id_prix_objet" => "id_prix_objet",
     62                "id_objet" => "id_objet",
     63                "id_objet" => "id_article"
     64        );
     65
     66        $tables_principales['spip_prix_objets'] = array(
     67                'field' => &$spip_prix_objets,
     68                'key' => &$spip_prix_objets_key,
     69                'join' => &$spip_prix_objets_join
     70        );
     71
     72        return $tables_principales;
     73}
     74
     75/**
     76 * Actualise la bd
     77 *
     78 * @param string $version_cible
     79 *              la version de la bd
     80 */
     81function po_upgrade($version_cible) {
     82
     83        // Remplace les champs "id_EXTENSION" par id_extension extension.
     84        if ($version_cible == '2.0.0') {
     85                $trouver_table = charger_fonction('trouver_table', 'base');
     86                $table = 'spip_prix_objets';
     87                $decription_table = $trouver_table($table);
     88                include_spip('inc/prix_objets');
     89
     90                $extensions = array(
     91                        'declinaison',
     92                        'po_periode'
    5393                );
    5494
    55                 $spip_prix_objets_key = array(
    56                         "PRIMARY KEY" => "id_prix_objet",
    57                         "KEY id_objet" => "id_prix_objet_source,id_objet,objet,id_extension,extension"
    58                 );
     95                foreach ($extensions as $extension) {
     96                        if ($identifiant_extension = id_table_objet($extension) and
     97                                isset($decription_table['field'][$identifiant_extension])) {
     98                                        $sql = sql_select('*', 'spip_prix_objets',
     99                                                $identifiant_extension . '>0');
    59100
    60                 $spip_prix_objets_join = array(
    61                         "id_prix_objet" => "id_prix_objet",
    62                         "id_objet" => "id_objet",
    63                         "id_objet" => "id_article"
    64                 );
    65 
    66                 $tables_principales['spip_prix_objets'] = array(
    67                         'field' => &$spip_prix_objets,
    68                         'key' => &$spip_prix_objets_key,
    69                         'join' => &$spip_prix_objets_join
    70                 );
    71 
    72                 return $tables_principales;
    73         }
    74 
    75         /**
    76          * Actualise la bd
    77          *
    78          * @param string $version_cible
    79          *              la version de la bd
    80          */
    81         function po_upgrade($version_cible) {
    82 
    83                 // Remplace les champs "id_EXTENSION" par id_extension extension.
    84                 if ($version_cible == '2.0.0') {
    85                         $trouver_table = charger_fonction('trouver_table', 'base');
    86                         $table = 'spip_prix_objets';
    87                         $decription_table = $trouver_table($table);
    88                         include_spip('inc/prix_objets');
    89 
    90                         $extensions = array(
    91                                 'declinaison',
    92                                 'po_periode'
    93                         );
    94 
    95                         foreach ($extensions as $extension) {
    96                                 if ($identifiant_extension = id_table_objet($extension) and
    97                                         isset($decription_table['field'][$identifiant_extension])) {
    98                                                 $sql = sql_select('*', 'spip_prix_objets',
    99                                                         $identifiant_extension . '>0');
    100 
    101                                                 while ($data = sql_fetch($sql)) {
    102                                                         sql_insertq('spip_prix_objets',
    103                                                                 array(
    104                                                                         'id_prix_objet_source' => $data['id_prix_objet'],
    105                                                                         'extension' => $extension,
    106                                                                         'id_extension' => $data[$identifiant_extension],
    107                                                                         'objet' => $data['objet'],
    108                                                                         'id_objet' => $data['id_objet'],
    109                                                                         'titre' => extraire_multi(
    110                                                                                 supprimer_numero(
    111                                                                                         generer_info_entite(
    112                                                                                                 $data[$identifiant_extension],
    113                                                                                                 $extension,
    114                                                                                                 'titre', '*'))),
    115                                                                         'prix' => $data['prix_ht']
    116                                                                 ));
    117                                                 }
    118                                                 sql_alter("TABLE $table DROP COLUMN  $identifiant_extension");
     101                                        while ($data = sql_fetch($sql)) {
     102                                                sql_insertq('spip_prix_objets',
     103                                                        array(
     104                                                                'id_prix_objet_source' => $data['id_prix_objet'],
     105                                                                'extension' => $extension,
     106                                                                'id_extension' => $data[$identifiant_extension],
     107                                                                'objet' => $data['objet'],
     108                                                                'id_objet' => $data['id_objet'],
     109                                                                'titre' => extraire_multi(
     110                                                                        supprimer_numero(
     111                                                                                generer_info_entite(
     112                                                                                        $data[$identifiant_extension],
     113                                                                                        $extension,
     114                                                                                        'titre', '*'))),
     115                                                                'prix' => $data['prix_ht']
     116                                                        ));
    119117                                        }
    120                         }
     118                                        sql_alter("TABLE $table DROP COLUMN  $identifiant_extension");
     119                                }
    121120                }
    122121        }
     122}
Note: See TracChangeset for help on using the changeset viewer.