source: spip-zone/_plugins_/coordonnees/branches/v2/coordonnees_administrations.php @ 70498

Last change on this file since 70498 was 70498, checked in by tcharlss@…, 7 years ago

création d'une branche stable pour la v2

File size: 5.0 KB
Line 
1<?php
2/**
3 * Plugin Coordonnees pour Spip 3
4 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
5 */
6
7function coordonnees_upgrade($nom_meta_base_version, $version_cible){
8
9
10        $maj = array();
11        $maj['create'] = array(
12                array('maj_tables', array('spip_adresses')),
13                array('maj_tables', array('spip_adresses_liens')),
14                array('maj_tables', array('spip_numeros')),
15                array('maj_tables', array('spip_numeros_liens')),
16                array('maj_tables', array('spip_emails')),
17                array('maj_tables', array('spip_emails_liens')),
18                array('ecrire_meta', 'coordonnees', serialize(array('objets'=>array('auteur'))))
19        );
20        $maj['1.1'] = array(
21                array('sql_update', array(array("voie" => "CONCAT(numero, ' ', voie)"),array("numero IS NOT NULL", "numero <> ''"))),
22                array('sql_alter', "TABLE spip_adresses DROP COLUMN numero")
23        );
24
25        $maj['1.2'] = array(
26                array('sql_alter', 'TABLE spip_adresses CHANGE type_adresse titre varchar(255) not null default ""'),
27                array('sql_alter', 'TABLE spip_numeros CHANGE type_numero titre varchar(255) not null default ""'),
28                array('sql_alter', 'TABLE spip_emails CHANGE type_email titre varchar(255) not null default ""')
29        );
30
31        // On passe les pays en code ISO, beaucoup plus génériques que les ids SQL
32        $maj['1.3'] = array(
33                array('sql_alter', 'TABLE spip_adresses ADD pays_code varchar(2) not null default ""'),
34                array('coordonnees_upgrade_1_3'),
35                array('sql_alter', 'TABLE spip_adresses DROP pays'),
36                array('sql_alter', 'TABLE spip_adresses CHANGE pays_code pays varchar(2) not null default ""'),
37        );
38
39        // On avait supprimer les types, mais ils reviennent en force mais dans les LIENS
40        $maj['1.4'] = array(
41                        array('sql_alter', 'TABLE spip_adresses_liens ADD type varchar(25) not null default ""'),
42                        array('sql_alter', 'TABLE spip_adresses_liens DROP PRIMARY KEY'),
43                        array('sql_alter', 'TABLE spip_adresses_liens ADD PRIMARY KEY (id_adresse, id_objet, objet, type)'),
44                        array('sql_alter', 'TABLE spip_numeros_liens ADD type varchar(25) not null default ""'),
45                        array('sql_alter', 'TABLE spip_numeros_liens DROP PRIMARY KEY'),
46                        array('sql_alter', 'TABLE spip_numeros_liens ADD PRIMARY KEY (id_numero, id_objet, objet, type)'),
47                        array('sql_alter', 'TABLE spip_emails_liens ADD type varchar(25) not null default ""'),
48                        array('sql_alter', 'TABLE spip_emails_liens DROP PRIMARY KEY'),
49                        array('sql_alter', 'TABLE spip_emails_liens ADD PRIMARY KEY (id_email, id_objet, objet, type)'),
50
51                        );
52        // mettre les auteurs par defaut comme objet «coordonnable»
53        $maj['1.5'] = array(
54                array('ecrire_meta','coordonnees', serialize(array('objets'=>array('auteur'))))
55        );
56
57        // ajout du champs region a la table adresses
58        $maj['1.6'] = array(
59                array('maj_tables', array('spip_adresses')),
60        );
61
62        // migration de certaines valeurs pour pouvoir faire fonctionner les selecteurs pendant l'edition
63        //!\ comme on n'est pas certain de tous les migrer il y a donc rupture de compatibilite ? :-S
64        $maj['1.7'] = array(
65                array('sql_updateq', "spip_adresses_liens", array('type'=>'work'), "LOWER(type) LIKE 'pro%'"),
66                array('sql_updateq', "spip_numeros_liens", array('type'=>'work'), "LOWER(type) LIKE 'pro%'"),
67                array('sql_updateq', "spip_adresses_liens", array('type'=>'home'), "LOWER(type) LIKE 'perso%'"),
68                array('sql_updateq', "spip_adresses_liens", array('type'=>'home'), "LOWER(type) LIKE 'dom%'"),
69                array('sql_updateq', "spip_numeros_liens", array('type'=>'home'), "LOWER(type) LIKE 'perso%'"),
70                array('sql_updateq', "spip_numeros_liens", array('type'=>'cell'), "LOWER(type) LIKE 'cel%'"),
71                array('sql_updateq', "spip_numeros_liens", array('type'=>'cell'), "LOWER(type) LIKE 'mob%'"),
72        );
73
74  // Definition des tables principales par declarer_tables_objets_sql au lieu de declarer_tables_principales
75        $maj['1.8'] = array(
76                array('maj_tables', array('spip_adresses', 'spip_adresses_liens', 'spip_numeros', 'spip_numeros_liens', 'spip_emails', 'spip_emails_liens')),
77        );
78        // Oublié le champ 'type' dans les tables de liens
79        $maj['1.8.1'] = array(
80                array('maj_tables', array('spip_adresses_liens', 'spip_numeros_liens', 'spip_emails_liens')),
81        );
82
83
84        include_spip('base/upgrade');
85        maj_plugin($nom_meta_base_version, $version_cible, $maj);
86}
87
88
89function coordonnees_upgrade_1_3()
90{
91                        // On parcourt les adresses pour remplir le code du pays
92                $adresses = sql_allfetsel('id_adresse,pays', 'spip_adresses');
93                if ($adresses and is_array($adresses)){
94                        foreach ($adresses as $adresse){
95                                $ok &= sql_update(
96                                        'spip_adresses',
97                                        array('pays_code' => '(SELECT code FROM spip_pays WHERE id_pays='.intval($adresse['pays']).')'),
98                                        'id_adresse='.intval($adresse['id_adresse'])
99                                );
100                        }
101                }
102}
103
104
105function coordonnees_vider_tables($nom_meta_base_version) {
106
107        sql_drop_table("spip_adresses");
108        sql_drop_table("spip_adresses_liens");
109        sql_drop_table("spip_numeros");
110        sql_drop_table("spip_numeros_liens");
111        sql_drop_table("spip_emails");
112        sql_drop_table("spip_emails_liens");
113
114        effacer_meta('coordonnees');
115        effacer_meta($nom_meta_base_version);
116}
117
118?>
Note: See TracBrowser for help on using the repository browser.