Changeset 110294 in spip-zone


Ignore:
Timestamp:
May 17, 2018, 2:48:58 PM (15 months ago)
Author:
abelass
Message:

Remplace les champs "id_EXTENSION" par id_extension extension.

Location:
_plugins_/prix_objets/trunk
Files:
4 edited

Legend:

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

    r110210 r110294  
    1212        $spip_prix_objets = array(
    1313                "id_prix_objet"         => "bigint(21) NOT NULL",
     14                'objet' => 'varchar(25) not null default ""',
    1415                "id_objet"      => "bigint(21) NOT NULL",
    1516                "titre"   => "varchar(255)  DEFAULT '' NOT NULL",
    1617                "reference"   => "varchar(255)  DEFAULT '' NOT NULL",
    17                 'objet' => 'varchar(25) not null default ""',
    1818                "code_devise"   => "varchar(3) NOT NULL",
    1919                "prix_ht"               => "decimal(15,2) NOT NULL DEFAULT '0.00'",
    2020                "prix"       => "decimal(15,2) NOT NULL DEFAULT '0.00'",
    2121                "taxe"   => "varchar(10)  DEFAULT '' NOT NULL",
     22                'extension' => 'varchar(50) not null default ""',
     23                "id_extension"  => "bigint(21) NOT NULL",
    2224                );
    2325
    2426        $spip_prix_objets_key = array(
    2527                "PRIMARY KEY"   => "id_prix_objet",
    26                 "KEY id_objet"  => "id_objet",
     28                "KEY id_objet"  => "id_objet,objet,id_extension,extension",
    2729                );
    2830
     
    4042
    4143        return $tables_principales;
     44}
     45
     46function po_upgrade($version_cible) {
     47
     48        // Remplace les champs "id_EXTENSION" par id_extension extension.
     49        if ($version_cible == '2.0.3') {
     50                $trouver_table = charger_fonction('trouver_table', 'base');
     51                $table = 'spip_prix_objets';
     52                $decription_table = $trouver_table($table);
     53                include_spip('inc/prix_objets');
     54                $extensions_declaration = prix_objets_extensions_declaration();
     55                $objets = array_keys($extensions_declaration);
     56
     57                foreach ($objets as $objet) {
     58                        if ($identifiant_extension = id_table_objet($objet) and
     59                                isset($decription_table['field'][$identifiant_extension])
     60                                ) {
     61                                        $sql = sql_select($identifiant_extension . ',id_prix_objet', 'spip_prix_objets', $identifiant_extension . '>0');
     62
     63                                        while ($data = sql_fetch($sql)) {
     64                                                sql_updateq(
     65                                                        'spip_prix_objets',
     66                                                        array(
     67                                                                'extension' => $objet,
     68                                                                'id_extension' => $data[$identifiant_extension],
     69                                                        ),
     70                                                        'id_prix_objet=' . $data['id_prix_objet']
     71                                                );
     72                                        }
     73                                        sql_alter("TABLE $table DROP COLUMN  $identifiant_extension");
     74                                }
     75                }
     76
    4277        }
     78}
    4379
  • _plugins_/prix_objets/trunk/inc/prix_objets.php

    r110045 r110294  
    99 * @return array
    1010 */
    11 function prix_objets_extensions_declaration($valeurs) {
     11function prix_objets_extensions_declaration($valeurs = array()) {
    1212
    1313        return pipeline(
  • _plugins_/prix_objets/trunk/paquet.xml

    r110208 r110294  
    22        prefix="prix_objets"
    33        categorie="edition"
    4         version="1.8.1"
     4        version="2.0.0"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.2.*]"
    77        logo="prive/themes/spip/images/prix_objets-64.png"
    88        documentation="https://contrib.spip.net/Prix-Objets"
    9         schema="1.5.0"
     9        schema="2.0.3"
    1010>
    1111
  • _plugins_/prix_objets/trunk/prix_objets_administrations.php

    r110032 r110294  
    3131 */
    3232function prix_objets_upgrade($nom_meta_base_version, $version_cible) {
    33                 include_spip('inc/config');
     33        include_spip('inc/config');
    3434
    3535        $maj = array();
    36         $maj['create'] = array(array('maj_tables', array('spip_prix_objets')));
    37                 $maj['1.1.0']  = array(
    38                                 array('sql_alter','TABLE spip_prix_objets RENAME TO spip_prix_objets')
    39                                 );
    40                 $maj['1.1.2']  = array(
    41                                 array('sql_alter','TABLE spip_prix_objets CHANGE prix prix_ht float (38,2) NOT NULL'),
    42                                 array('maj_tables', array('spip_prix_objets')),
    43                                 );
    44                 $maj['1.1.3']  = array(
    45                                 array('sql_alter','TABLE spip_prix_objets CHANGE prix prix float (38,2) NOT NULL'),
    46                                 );
    47                 $maj['1.1.4']  = array(
    48                                 array('sql_alter','TABLE spip_prix_objets CHANGE id_prix id_prix_objet bigint(21) NOT NULL'),
    49                                 );
    50                 $maj['1.1.5'] = array(array('maj_tables', array('spip_prix_objets')));
    51                 $maj['1.2.4'] = array(array('maj_tables', array('spip_prix_objets')));
    52                 $maj['1.3.0'] = array(array('maj_tables', array('spip_prix_objets')));
    53                 $maj['1.4.0'] = array(
    54                                 array('ecrire_config', 'prix_objets',lire_config('shop_prix',array())),
    55                                 array('ecrire_config', 'shop_prix',array()),
    56                                 array('effacer_meta', 'shop_prix_base_version')
    57                                 );
    58                 $maj['1.5.0']  = array(
    59                         array('sql_alter','TABLE spip_prix_objets CHANGE prix prix decimal(15,2) NOT NULL DEFAULT "0.00"'),
    60                         array('sql_alter','TABLE spip_prix_objets CHANGE prix_ht prix_ht decimal(15,2) NOT NULL DEFAULT "0.00"'),
    61                 );
     36        $maj['create'] = array(
     37                array('maj_tables', array('spip_prix_objets'))
     38        );
     39        $maj['1.1.0']  = array(
     40                        array('sql_alter','TABLE spip_prix_objets RENAME TO spip_prix_objets')
     41                        );
     42        $maj['1.1.2']  = array(
     43                        array('sql_alter','TABLE spip_prix_objets CHANGE prix prix_ht float (38,2) NOT NULL'),
     44                        array('maj_tables', array('spip_prix_objets')),
     45                        );
     46        $maj['1.1.3']  = array(
     47                        array('sql_alter','TABLE spip_prix_objets CHANGE prix prix float (38,2) NOT NULL'),
     48                        );
     49        $maj['1.1.4']  = array(
     50                        array('sql_alter','TABLE spip_prix_objets CHANGE id_prix id_prix_objet bigint(21) NOT NULL'),
     51                        );
     52        $maj['1.1.5'] = array(array('maj_tables', array('spip_prix_objets')));
     53        $maj['1.2.4'] = array(array('maj_tables', array('spip_prix_objets')));
     54        $maj['1.3.0'] = array(array('maj_tables', array('spip_prix_objets')));
     55        $maj['1.4.0'] = array(
     56                        array('ecrire_config', 'prix_objets',lire_config('shop_prix',array())),
     57                        array('ecrire_config', 'shop_prix',array()),
     58                        array('effacer_meta', 'shop_prix_base_version')
     59                        );
     60        $maj['1.5.0']  = array(
     61                array('sql_alter','TABLE spip_prix_objets CHANGE prix prix decimal(15,2) NOT NULL DEFAULT "0.00"'),
     62                array('sql_alter','TABLE spip_prix_objets CHANGE prix_ht prix_ht decimal(15,2) NOT NULL DEFAULT "0.00"'),
     63        );
     64        $maj['2.0.3']  = array(
     65                array('maj_tables', array('spip_prix_objets')),
     66                array('sql_alter','TABLE spip_prix_objets ADD INDEX `id_objet` (`objet,id_extension,extension`)'),
     67                array('po_upgrade',$version_cible),
     68        );
    6269
    6370        include_spip('base/upgrade');
Note: See TracChangeset for help on using the changeset viewer.