source: spip-zone/_plugins_/clevermail/2_0/base/clevermail.php @ 51999

Last change on this file since 51999 was 51999, checked in by dwojylac@…, 8 years ago

Oups oubli d'une parenthèse

File size: 10.9 KB
Line 
1<?php
2function clevermail_declarer_tables_interfaces($interface){
3        // 'spip_' dans l'index de $tables_principales
4        $interface['table_des_tables']['cm_lists']='cm_lists';
5        $interface['table_des_tables']['cm_lists_subscribers']='cm_lists_subscribers';
6        $interface['table_des_tables']['cm_pending']='cm_pending';
7        $interface['table_des_tables']['cm_posts']='cm_posts';
8        $interface['table_des_tables']['cm_posts_done']='cm_posts_done';
9        $interface['table_des_tables']['cm_posts_links']='cm_posts_links';
10        $interface['table_des_tables']['cm_posts_queued']='cm_posts_queued';
11        $interface['table_des_tables']['cm_settings']='cm_settings';
12        $interface['table_des_tables']['cm_subscribers']='cm_subscribers';
13        return $interface;
14}
15
16function clevermail_declarer_tables_principales($tables_principales) {
17        // spip_cm_lists
18        $spip_cm_lists = array(
19            "lst_id" => "INT(11) NOT NULL auto_increment",
20            "lst_name" => "VARCHAR(255) NOT NULL",
21            "lst_comment" => "TEXT NOT NULL",
22            "lst_moderation" => "VARCHAR(10) NOT NULL",
23            "lst_moderator_email" => "VARCHAR(255) NOT NULL",
24            "lst_subscribe_subject" => "VARCHAR(255) NOT NULL",
25            "lst_subscribe_text" => "TEXT NOT NULL",
26            "lst_subject" => "VARCHAR(255) NOT NULL",
27            "lst_unsubscribe_subject" => "VARCHAR(255) NOT NULL",
28            "lst_unsubscribe_text" => "TEXT NOT NULL",
29            "lst_subject_tag" => "TINYINT(1) NOT NULL default '1'",
30            "lst_url_html" => "VARCHAR(255) NOT NULL",
31            "lst_url_text" => "VARCHAR(255) NOT NULL",
32            "lst_auto_mode" => "ENUM('none', 'day', 'week', 'month') DEFAULT 'none'",
33            "lst_auto_hour" => "TINYINT(2) NOT NULL default '8'",
34            "lst_auto_week_day" => "TINYINT(1) NOT NULL default '1'", // 0 = dimanche
35        "lst_auto_week_days" => "VARCHAR(13) NOT NULL default '1'", // concatenation numeros des jours, 0 = dimanche
36            "lst_auto_month_day" => "TINYINT(2) NOT NULL default '1'",
37            "lst_auto_subscribers" => "VARCHAR(255) NOT NULL",
38            "lst_auto_subscribers_mode" => "TINYINT(1) NOT NULL default '0'",
39            "lst_auto_subscribers_updated" => "int(11) NOT NULL default '0'"
40        );
41
42        $spip_cm_lists_key = array(
43            "PRIMARY KEY" => "lst_id"
44        );
45
46        $tables_principales['spip_cm_lists'] = array(
47    'field' => &$spip_cm_lists,
48    'key' => &$spip_cm_lists_key
49  );
50
51        // spip_cm_lists_subscribers
52        $spip_cm_lists_subscribers = array(
53          "lst_id" => "INT(11) NOT NULL",
54          "sub_id" => "BIGINT(20) NOT NULL",
55          "lsr_mode" => "TINYINT(1) NOT NULL",
56          "lsr_id" => "VARCHAR(32) NOT NULL"
57        );
58
59        $spip_cm_lists_subscribers_key = array(
60            "PRIMARY KEY" => "lst_id, sub_id",
61            "KEY lst_id" => "lst_id"
62        );
63
64  $tables_principales['spip_cm_lists_subscribers'] = array(
65    'field' => &$spip_cm_lists_subscribers,
66    'key' => &$spip_cm_lists_subscribers_key
67  );
68
69        // spip_cm_pending
70        $spip_cm_pending = array(
71          "lst_id" => "int(11) NOT NULL",
72          "sub_id" => "bigint(20) NOT NULL",
73          "pnd_action" => "varchar(15) NOT NULL",
74          "pnd_mode" => "tinyint(1) NOT NULL",
75          "pnd_action_date" => "int(11) NOT NULL",
76          "pnd_action_id" => "varchar(32) NOT NULL"
77        );
78
79        $spip_cm_pending_key = array(
80          "PRIMARY KEY" => "lst_id, sub_id"
81        );
82
83  $tables_principales['spip_cm_pending'] = array(
84    'field' => &$spip_cm_pending,
85    'key' => &$spip_cm_pending_key
86  );
87
88        // spip_cm_posts
89        $spip_cm_posts = array(
90          "pst_id" => "bigint(20) NOT NULL auto_increment",
91          "lst_id" => "int(11) NOT NULL",
92          "pst_date_create" => "int(11) NOT NULL",
93          "pst_date_update" => "int(11) NOT NULL",
94          "pst_date_sent" => "int(11) NOT NULL",
95          "pst_subject" => "varchar(255) NOT NULL",
96          "pst_html" => "longtext NOT NULL",
97          "pst_text" => "longtext NOT NULL",
98        );
99
100        $spip_cm_posts_key = array(
101          "PRIMARY KEY" => "pst_id"
102        );
103
104  $tables_principales['spip_cm_posts'] = array(
105    'field' => &$spip_cm_posts,
106    'key' => &$spip_cm_posts_key
107  );
108
109        // spip_cm_posts_done
110        $spip_cm_posts_done = array(
111          "pst_id" => "bigint(20) NOT NULL",
112          "sub_id" => "bigint(20) NOT NULL"
113        );
114
115        $spip_cm_posts_done_key = array(
116          "PRIMARY KEY" => "pst_id, sub_id"
117        );
118
119  $tables_principales['spip_cm_posts_done'] = array(
120    'field' => &$spip_cm_posts_done,
121    'key' => &$spip_cm_posts_done_key
122  );
123
124        // spip_cm_posts_links
125        $spip_cm_posts_links = array(
126          "lnk_id" => "bigint(20) NOT NULL",
127          "pst_id" => "bigint(20) NOT NULL",
128          "lnk_name" => "varchar(255) NOT NULL",
129          "lnk_url" => "text NOT NULL"
130        );
131
132        $spip_cm_posts_links_key = array(
133          "PRIMARY KEY" => "lnk_id"
134        );
135
136  $tables_principales['spip_cm_posts_links'] = array(
137    'field' => &$spip_cm_posts_links,
138    'key' => &$spip_cm_posts_links_key
139  );
140
141        // spip_cm_posts_queued
142        $spip_cm_posts_queued = array(
143          "pst_id" => "bigint(20) NOT NULL",
144          "sub_id" => "bigint(20) NOT NULL",
145          "psq_date" => "int(11) NOT NULL"
146        );
147
148        $spip_cm_posts_queued_key = array(
149          "PRIMARY KEY" => "pst_id, sub_id"
150        );
151
152  $tables_principales['spip_cm_posts_queued'] = array(
153    'field' => &$spip_cm_posts_queued,
154    'key' => &$spip_cm_posts_queued_key
155  );
156
157        // spip_cm_settings
158        $spip_cm_settings = array(
159          "set_name" => "varchar(15) NOT NULL",
160          "set_value" => "varchar(255) NOT NULL"
161        );
162
163        $spip_cm_settings_key = array(
164          //"PRIMARY KEY" => "set_name"
165        );
166
167  $tables_principales['spip_cm_settings'] = array(
168    'field' => &$spip_cm_settings,
169    'key' => &$spip_cm_settings_key
170  );
171
172        // spip_cm_subscribers
173        $spip_cm_subscribers = array(
174          "sub_id" => "bigint(20) NOT NULL auto_increment",
175          "sub_email" => "varchar(255) NOT NULL",
176          "sub_profile" => "varchar(32) NOT NULL"
177        );
178
179        $spip_cm_subscribers_key = array(
180          "PRIMARY KEY" => "sub_id",
181          "KEY sub_profile" => "sub_profile",
182          "KEY sub_email" => "sub_email"
183        );
184
185  $tables_principales['spip_cm_subscribers'] = array(
186    'field' => &$spip_cm_subscribers,
187    'key' => &$spip_cm_subscribers_key
188  );
189
190  return $tables_principales;
191}
192
193function clevermail_upgrade($nom_meta_base_version, $version_cible) {
194        include_spip('inc/meta');
195  $current_version = 0.0;
196  if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
197      || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
198    if (version_compare($current_version,'0.1','<')) {
199      include_spip('base/abstract_sql');
200      include_spip('base/create');
201      creer_base();
202      // pas besoin d'insert si pas de mail webmaster défini
203      if ($GLOBALS['meta']['email_webmaster']){
204              sql_insertq('spip_cm_settings',  array('set_name' => 'CM_MAIL_FROM', 'set_value' => $GLOBALS['meta']['email_webmaster']));
205              sql_insertq('spip_cm_settings',  array('set_name' => 'CM_MAIL_ADMIN', 'set_value' => $GLOBALS['meta']['email_webmaster']));
206              sql_insertq('spip_cm_settings',  array('set_name' => 'CM_MAIL_RETURN', 'set_value' => $GLOBALS['meta']['email_webmaster']));
207          }
208      sql_insertq('spip_cm_settings',  array('set_name' => 'CM_SEND_NUMBER', 'set_value' => 50));
209      ecrire_meta($nom_meta_base_version,$current_version="0.1",'non');
210      spip_log('Installation des tables du plugin CleverMail en version 0.1', 'clevermail');
211    }
212    if (version_compare($current_version,'0.2','<')) {
213                  sql_alter("TABLE cm_lists RENAME spip_cm_lists");
214                  sql_alter("TABLE cm_lists_subscribers RENAME spip_cm_lists_subscribers");
215                  sql_alter("TABLE cm_pending RENAME spip_cm_pending");
216                  sql_alter("TABLE cm_posts RENAME spip_cm_posts");
217                  sql_alter("TABLE cm_posts_done RENAME spip_cm_posts_done");
218                  sql_alter("TABLE cm_posts_links RENAME spip_cm_posts_links");
219                  sql_alter("TABLE cm_posts_queued RENAME spip_cm_posts_queued");
220                  sql_alter("TABLE cm_settings RENAME spip_cm_settings");
221                  sql_alter("TABLE cm_subscribers RENAME spip_cm_subscribers");
222      ecrire_meta($nom_meta_base_version,$current_version="0.2",'non');
223      spip_log('Mise à jour des tables du plugin CleverMail en version 0.2', 'clevermail');
224    }
225    if (version_compare($current_version,'0.3','<')) {
226      include_spip('base/abstract_sql');
227      include_spip('base/create');
228        maj_tables('spip_cm_lists');
229      ecrire_meta($nom_meta_base_version,$current_version="0.3",'non');
230      spip_log('Mise à jour des tables du plugin CleverMail en version 0.3', 'clevermail');
231    }
232    if (version_compare($current_version,'0.4','<')) {
233      include_spip('base/abstract_sql');
234      include_spip('base/create');
235      maj_tables('spip_cm_lists');
236      ecrire_meta($nom_meta_base_version,$current_version="0.4",'non');
237      spip_log('Mise à jour des tables du plugin CleverMail en version 0.4', 'clevermail');
238    }
239    if (version_compare($current_version,'0.5','<')) {
240      include_spip('base/abstract_sql');
241      // On avait inventé un troisième mode pour rien
242      sql_updateq("spip_cm_lists_subscribers", array('lsr_mode' => 1), "lsr_mode=2");
243      ecrire_meta($nom_meta_base_version,$current_version="0.5",'non');
244      spip_log('Mise à jour des tables du plugin CleverMail en version 0.5', 'clevermail');
245    }
246    if (version_compare($current_version,'0.6','<')) {
247      include_spip('base/abstract_sql');
248      include_spip('base/create');
249      maj_tables('spip_cm_lists');
250      sql_update('spip_cm_lists', array('lst_auto_week_days' => 'lst_auto_week_day')); 
251      sql_alter("TABLE spip_cm_lists DROP lst_auto_week_day");
252      ecrire_meta($nom_meta_base_version,$current_version="0.6",'non');
253      spip_log('Mise à jour des tables du plugin CleverMail en version 0.6', 'clevermail');
254    }
255    if (version_compare($current_version,'0.7','<')) {
256      include_spip('base/abstract_sql');
257      include_spip('base/create');
258      maj_tables('spip_cm_lists');
259      ecrire_meta($nom_meta_base_version,$current_version="0.7",'non');
260      spip_log('Mise à jour des tables du plugin CleverMail en version 0.7', 'clevermail');
261    }
262    if (version_compare($current_version,'0.8','<')) {
263      include_spip('base/abstract_sql');
264      include_spip('base/create');
265      maj_tables('spip_cm_lists');
266      sql_alter("TABLE spip_cm_lists DROP lst_subscribe_subject_multiple");
267      sql_alter("TABLE spip_cm_lists DROP lst_subscribe_text_multiple");
268      sql_insertq('spip_cm_settings',  array('set_name' => 'CM_MAIL_SUBJECT', 'set_value' => _T('clevermail:confirmation_votre_inscription_multiple')));
269      sql_insertq('spip_cm_settings',  array('set_name' => 'CM_MAIL_TEXT', 'set_value' => _T('clevermail:confirmation_votre_inscription_text_multiple')));
270      ecrire_meta($nom_meta_base_version,$current_version="0.8",'non');
271      spip_log('Mise à jour des tables du plugin CleverMail en version 0.8', 'clevermail');
272    }
273  }
274}
275
276function clevermail_vider_tables($nom_meta_base_version) {
277  include_spip('inc/meta');
278  include_spip('base/abstract_sql');
279  sql_drop_table('spip_cm_lists');
280  sql_drop_table('spip_cm_lists_subscribers');
281  sql_drop_table('spip_cm_pending');
282  sql_drop_table('spip_cm_posts');
283  sql_drop_table('spip_cm_posts_done');
284  sql_drop_table('spip_cm_posts_links');
285  sql_drop_table('spip_cm_posts_queued');
286  sql_drop_table('spip_cm_settings');
287  sql_drop_table('spip_cm_subscribers');
288  effacer_meta($nom_meta_base_version);
289  spip_log('Suppression des tables du plugin CleverMail', 'clevermail');
290}
291?>
Note: See TracBrowser for help on using the repository browser.