Merge pull request #6 from nursit/refconfig
[spip_souscriptions.git] / souscription_administrations.php
1 <?php
2 /**
3  * Fichier gérant l'installation et désinstallation du plugin Souscription
4  *
5  * @plugin     Souscription
6  * @copyright  2013
7  * @author     Olivier Tétard
8  * @licence    GNU/GPL
9  * @package    SPIP\Souscription\Installation
10  */
11
12 if (!defined('_ECRIRE_INC_VERSION')) return;
13
14
15 /**
16  * Fonction d'installation et de mise à jour du plugin Souscription.
17  *
18  * @param string $nom_meta_base_version
19  *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
20  * @param string $version_cible
21  *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
22  * @return void
23  **/
24 function souscription_upgrade($nom_meta_base_version, $version_cible) {
25   $maj = array();
26
27   $maj['create'] = array(array('maj_tables',
28                                array('spip_souscriptions',
29                                      'spip_souscription_campagnes',
30                                      )));
31   $maj['0.1'] = array(array('sql_alter', "TABLE spip_souscriptions ADD informer_comite_local varchar(3) NOT NULL DEFAULT ''"));
32
33   $maj['0.2'] = array(array('sql_alter', "TABLE spip_souscriptions ADD pays text NOT NULL DEFAULT ''"));
34
35   $maj['0.3'] = array(array('sql_alter', "TABLE spip_souscriptions ADD telephone text NOT NULL DEFAULT ''"));
36
37   $maj['0.4'] = array(array('sql_alter', "TABLE spip_souscription_campagnes ADD objectif_limiter varchar(3) NOT NULL DEFAULT ''"));
38
39   $maj['0.5'] = array(array('sql_alter', "TABLE spip_souscription_campagnes ADD configuration_specifique varchar(3) NOT NULL DEFAULT ''"),
40                       array('sql_alter', "TABLE spip_souscription_campagnes ADD type_saisie varchar(255) NOT NULL DEFAULT ''"),
41                       array('sql_alter', "TABLE spip_souscription_campagnes ADD montants text NOT NULL DEFAULT ''"));
42
43   $maj['0.6'] = array(array('maj_configuration_montants'));
44
45   include_spip('base/upgrade');
46   maj_plugin($nom_meta_base_version, $version_cible, $maj);
47 }
48
49 /* Fonction permettant de changer le format des montants globaux pour
50  * le plugin souscription. Les montants étaient stockés sous la forme
51  * d'un array() sérialisés. Il sont désormais stockés dans leur format
52  * chaine de caractères. */
53 function maj_configuration_montants() {
54   foreach(array('adhesion_montants', 'don_montants') as $cfg) {
55     $cle_cfg = "souscription/${cfg}";
56
57     $montants_orig = lire_config($cle_cfg);
58
59     $montants = "";
60     foreach($montants_orig as $prix => $description) {
61       $montants .= $prix . "|" . $description . "\n";
62     }
63
64     ecrire_config($cle_cfg, $montants);
65   }
66 }
67
68 /**
69  * Fonction de désinstallation du plugin Souscription.
70  *
71  * @param string $nom_meta_base_version
72  *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
73  * @return void
74  **/
75 function souscription_vider_tables($nom_meta_base_version) {
76
77   sql_drop_table("spip_souscriptions");
78   sql_drop_table("spip_souscription_campagnes");
79
80   /* Nettoyer les versionnages et forums */
81   sql_delete("spip_versions",              sql_in("objet", array('souscription')));
82   sql_delete("spip_versions_fragments",    sql_in("objet", array('souscription')));
83   sql_delete("spip_forum",                 sql_in("objet", array('souscription')));
84
85   effacer_meta($nom_meta_base_version);
86 }
87 ?>