source: extensions/UserAdvManager/trunk/include/upgradedb.inc.php @ 12247

Last change on this file since 12247 was 12247, checked in by Eric, 13 years ago
  • Fix database upgrade error
  • Improve code documentation
  • Version 2.30.0 hard coded
  • Property svn:eol-style set to LF
File size: 15.2 KB
Line 
1<?php
2/**
3 * @author Eric@piwigo.org
4 * 
5 * Upgrade processes for old plugin version
6 * Called from maintain.inc.php on plugin activation
7 *
8 */
9
10if(!defined('UAM_PATH'))
11{
12  define('UAM_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
13}
14
15include_once (UAM_PATH.'include/constants.php');
16include_once (UAM_PATH.'include/functions.inc.php');
17
18// +----------------------------------------------------------+
19// |       Upgrading database from old plugin versions        |
20// +----------------------------------------------------------+
21
22
23/* *************************************** */
24/* Update plugin version in conf table     */
25/* Used everytime a new version is updated */
26/* even if no database upgrade is needed   */
27/* *************************************** */
28function UAM_version_update()
29{ 
30  // Get current plugin version
31  $plugin =  PluginInfos(UAM_PATH);
32  $version = $plugin['version'];
33
34  // Update plugin version in #_config table
35  $query = '
36UPDATE '.CONFIG_TABLE.'
37SET value="'.$version.'"
38WHERE param="UserAdvManager_Version"
39LIMIT 1
40;';
41
42  pwg_query($query);
43
44
45// Check #_plugin table consistency
46// Only useful if a previous version upgrade has not worked correctly (rare case)
47  $query = '
48SELECT version
49  FROM '.PLUGINS_TABLE.'
50WHERE id = "UserAdvManager"
51;';
52 
53  $data = pwg_db_fetch_assoc(pwg_query($query));
54 
55  if (empty($data['version']) or $data['version'] <> $version)
56  {
57    $query = '
58UPDATE '.PLUGINS_TABLE.'
59SET version="'.$version.'"
60WHERE id = "UserAdvManager"
61LIMIT 1
62;';
63
64    pwg_query($query);
65  }
66}
67
68
69/* upgrade from branch 2.10 to 2.11 */
70/* ******************************** */
71function upgrade_210_211()
72{
73        global $conf;
74         
75  $q = '
76INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
77VALUES ("nbc_UserAdvManager_ConfirmMail","false;5;Hello.
78               
79This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key has expired. To still allow you to access to our gallery, your validation period has been reset. You have again 5 days to validate your registration.
80
81Note: After this period, your account will be permanently deleted.;false;Hello.
82
83This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key will expire. To allow you access to our gallery, you have 2 days to confirm your registration by clicking on the link in the message you should have received when you registered.
84
85Note: After this period, your account will be permanently deleted.","Parametres nbc_UserAdvManager - ConfirmMail")
86  ;';
87  pwg_query($q);
88
89  upgrade_211_212();
90}
91
92
93/* upgrade from branch 2.11 to 2.12 */
94/* ******************************** */
95function upgrade_211_212()
96{
97        global $conf;
98
99  $conf_UAM = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
100
101  if ((!isset($conf_UAM[14]) and !isset($conf_UAM[15])) and !isset($conf_UAM[16]) and !isset($conf_UAM[17]))
102  {
103    $upgrade_UAM = $conf_UAM[0].';'.$conf_UAM[1].';'.$conf_UAM[2].';'.$conf_UAM[3].';'.$conf_UAM[4].';'.$conf_UAM[5].';'.$conf_UAM[6].';'.$conf_UAM[7].';'.$conf_UAM[8].';'.$conf_UAM[9].';'.$conf_UAM[10].';'.$conf_UAM[11].';'.$conf_UAM[12].';'.$conf_UAM[13].';false;100;false;false;10;Hello.
104       
105This is a reminder because a very long time passed since your last visit on our gallery. If you do not want anymore to use your access account, please let us know by replying to this email. Your account will be deleted.
106
107On receipt of this message and no new visit within 15 days, we would be obliged to automatically delete your account.
108
109Best regards,
110
111The admin of the gallery.';
112
113    conf_update_param('nbc_UserAdvManager', pwg_db_real_escape_string($upgrade_UAM));
114  }
115 
116        $q = "
117CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
118  user_id SMALLINT(5) NOT NULL DEFAULT '0',
119  lastvisit DATETIME NULL DEFAULT NULL,
120  reminder ENUM('true','false') NULL,
121PRIMARY KEY (`user_id`)
122  )
123;";
124  pwg_query($q);
125
126  upgrade_212_213();
127}
128
129
130/* upgrade from branch 2.12 to 2.13 */
131/* ******************************** */
132function upgrade_212_213()
133{
134  // Create missing table
135  $query = "
136ALTER TABLE ".USER_CONFIRM_MAIL_TABLE."
137ADD reminder ENUM('true', 'false') NULL DEFAULT NULL
138;";
139 
140  pwg_query($query);
141
142  // Upgrade plugin configuration
143        global $conf;
144
145  $conf_UAM = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
146
147  if ((!isset($conf_UAM[20])))
148  {
149    $upgrade_UAM = $conf_UAM[0].';'.$conf_UAM[1].';'.$conf_UAM[2].';'.$conf_UAM[3].';'.$conf_UAM[4].';'.$conf_UAM[5].';'.$conf_UAM[6].';'.$conf_UAM[7].';'.$conf_UAM[8].';'.$conf_UAM[9].';'.$conf_UAM[10].';'.$conf_UAM[11].';'.$conf_UAM[12].';'.$conf_UAM[13].';'.$conf_UAM[14].';'.$conf_UAM[15].';'.$conf_UAM[16].';'.$conf_UAM[17].';'.$conf_UAM[18].';'.$conf_UAM[19].';false';
150               
151                conf_update_param('nbc_UserAdvManager', pwg_db_real_escape_string($upgrade_UAM));
152   
153    upgrade_213_214();
154  }
155}
156
157
158/* upgrade from branch 2.13 to 2.14 */
159/* ******************************** */
160function upgrade_213_214()
161{
162        global $conf;
163 
164  $conf_UAM = explode(';', $conf['nbc_UserAdvManager']);
165
166  $upgrade_UAM = array($conf_UAM[0],$conf_UAM[1],$conf_UAM[2],$conf_UAM[3],$conf_UAM[4],$conf_UAM[5],$conf_UAM[6],$conf_UAM[7],$conf_UAM[8],$conf_UAM[9],$conf_UAM[10],$conf_UAM[11],$conf_UAM[12],$conf_UAM[13],$conf_UAM[14],$conf_UAM[15],$conf_UAM[16],$conf_UAM[17],$conf_UAM[18],$conf_UAM[19],$conf_UAM[20],'false');
167
168  $query = '
169UPDATE '.CONFIG_TABLE.'
170  SET value = "'.pwg_db_real_escape_string(serialize($upgrade_UAM)).'"
171  WHERE param = "nbc_UserAdvManager"
172;';
173  pwg_query($query);
174 
175  if (unserialize($conf['nbc_UserAdvManager_ConfirmMail']) === false)
176  {
177    $data = explode(';', $conf['nbc_UserAdvManager_ConfirmMail']);
178
179    conf_update_param('nbc_UserAdvManager_ConfirmMail', pwg_db_real_escape_string(serialize($data)));
180   
181    upgrade_214_215();
182  }
183}
184
185
186/* upgrade from branch 2.14 to 2.15 */
187/* ******************************** */
188function upgrade_214_215()
189{
190  global $conf;
191
192  // Changing parameter name
193  $q = '
194UPDATE '.CONFIG_TABLE.'
195SET param = "UserAdvManager"
196WHERE param = "nbc_UserAdvManager"
197;';
198  pwg_query($q);
199 
200  $q = '
201UPDATE '.CONFIG_TABLE.'
202SET param = "UserAdvManager_ConfirmMail"
203WHERE param = "nbc_UserAdvManager_ConfirmMail"
204;';
205  pwg_query($q);
206
207  // Upgrading ConfirmMail options
208  $query = '
209SELECT value
210  FROM '.CONFIG_TABLE.'
211WHERE param = "UserAdvManager_ConfirmMail"
212;';
213
214  $result = pwg_query($query);
215  $conf_UAM_ConfirmMail = pwg_db_fetch_assoc($result);
216   
217  $conf_ConfirmMail = unserialize($conf_UAM_ConfirmMail['value']);
218 
219  $conf_ConfirmMail[5] ='Thank you to have confirmed your email address and your registration on the gallery. Have fun !';
220  $conf_ConfirmMail[6] ='Your activation key is incorrect or expired or you have already validated your account, please contact the webmaster to fix this problem.';
221 
222  $update_conf = serialize($conf_ConfirmMail);
223 
224  conf_update_param('UserAdvManager_ConfirmMail', pwg_db_real_escape_string($update_conf));
225   
226  upgrade_2153_2154();
227}
228
229
230/* upgrade from 2.15.3 to 2.15.4 */
231/* ***************************** */
232function upgrade_2153_2154()
233{
234  global $conf;
235
236  // Upgrading options
237  $query = '
238SELECT value
239  FROM '.CONFIG_TABLE.'
240WHERE param = "UserAdvManager"
241;';
242
243  $result = pwg_query($query);
244  $conf_UAM = pwg_db_fetch_assoc($result);
245   
246  $Newconf_UAM = unserialize($conf_UAM['value']);
247 
248  $Newconf_UAM[0] = $Newconf_UAM[0];
249  $Newconf_UAM[1] = $Newconf_UAM[2];
250  $Newconf_UAM[2] = $Newconf_UAM[3];
251  $Newconf_UAM[3] = $Newconf_UAM[4];
252  $Newconf_UAM[4] = $Newconf_UAM[5];
253  $Newconf_UAM[5] = $Newconf_UAM[6];
254  $Newconf_UAM[6] = $Newconf_UAM[7];
255  $Newconf_UAM[7] = $Newconf_UAM[8];
256  $Newconf_UAM[8] = $Newconf_UAM[9];
257  $Newconf_UAM[9] = $Newconf_UAM[10];
258  $Newconf_UAM[10] = $Newconf_UAM[11];
259  $Newconf_UAM[11] = $Newconf_UAM[12];
260  $Newconf_UAM[12] = $Newconf_UAM[13];
261  $Newconf_UAM[13] = $Newconf_UAM[14];
262  $Newconf_UAM[14] = $Newconf_UAM[15];
263  $Newconf_UAM[15] = $Newconf_UAM[16];
264  $Newconf_UAM[16] = $Newconf_UAM[17];
265  $Newconf_UAM[17] = $Newconf_UAM[18];
266  $Newconf_UAM[18] = $Newconf_UAM[19];
267  $Newconf_UAM[19] = $Newconf_UAM[20];
268  $Newconf_UAM[20] = $Newconf_UAM[21];
269  $Newconf_UAM[21] = 'false';
270 
271  $update_conf = serialize($Newconf_UAM);
272 
273  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
274
275  $query = '
276INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
277VALUES ("UserAdvManager_Redir","0","UAM Redirections")
278  ;';
279 
280  pwg_query($query);
281}
282
283
284/* upgrade from 2.15.x to 2.16.0 */
285/* ***************************** */
286function upgrade_215_2160()
287{
288  global $conf;
289
290  // Upgrading options
291  $query = '
292SELECT value
293  FROM '.CONFIG_TABLE.'
294WHERE param = "UserAdvManager"
295;';
296
297  $result = pwg_query($query);
298  $conf_UAM = pwg_db_fetch_assoc($result);
299   
300  $Newconf_UAM = unserialize($conf_UAM['value']);
301 
302  $Newconf_UAM[22] = 'false';
303  $Newconf_UAM[23] = 'false';
304  $Newconf_UAM[24] = 'Sorry, your account has been deleted due to a too long time passed since your last visit.';
305  $Newconf_UAM[25] = 'Sorry, your account has been deprecated due to a too long time passed since your last visit. Please, use the following link to revalidate your account.';
306  $Newconf_UAM[26] = '-1';
307  $Newconf_UAM[27] = '-1';
308  $Newconf_UAM[28] = 'Thank you to have registered the gallery. Your account has been manually validated by admin. You can now visit all the gallery for free !';
309 
310  $update_conf = serialize($Newconf_UAM);
311 
312  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
313
314  // Insert a new config entry for futur plugin's version check
315  $query = '
316INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
317VALUES ("UserAdvManager_Version","2.16.0","UAM version check")
318  ;';
319 
320  pwg_query($query);
321}
322
323
324/* upgrade from 2.16.x to 2.20.0 */
325/* ***************************** */
326function upgrade_216_220()
327{
328  global $conf;
329
330  // Upgrading options
331  $query = '
332SELECT value
333  FROM '.CONFIG_TABLE.'
334WHERE param = "UserAdvManager"
335;';
336
337  $result = pwg_query($query);
338  $conf_UAM = pwg_db_fetch_assoc($result);
339   
340  $Newconf_UAM = unserialize($conf_UAM['value']);
341 
342  $Newconf_UAM[29] = 'false';
343  $Newconf_UAM[30] = 'You have requested a password reset on our gallery. Please, find below your new connection settings.';
344  $Newconf_UAM[31] = 'false';
345  $Newconf_UAM[32] = 'Sorry, your account has been deleted because you have not validated your registration in requested time. Please, try registration with a valid and non blocked email account.';
346  $Newconf_UAM[33] = 'false';
347  $Newconf_UAM[34] = 'false';
348 
349  $update_conf = serialize($Newconf_UAM);
350 
351  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
352
353  // Create new UAM entry in plugins table
354  $uam_new_version = "2.20.0";
355
356  $query = '
357INSERT INTO '.PLUGINS_TABLE.' (id, state, version)
358VALUES ("UserAdvManager","active","'.$uam_new_version.'")
359;';
360 
361  pwg_query($query);
362
363  // Delete old plugin entry in plugins table
364  $query = '
365DELETE FROM '.PLUGINS_TABLE.'
366WHERE id="NBC_UserAdvManager"
367LIMIT 1
368;';
369 
370  pwg_query($query);
371
372  // rename directory
373  if (!rename(PHPWG_PLUGINS_PATH.'NBC_UserAdvManager', PHPWG_PLUGINS_PATH.'UserAdvManager'))
374  {
375    die('Fatal error on plugin upgrade process : Unable to rename directory ! Please, rename manualy the plugin directory name from ../plugins/NBC_UserAdvManager to ../plugins/UserAdvManager.');
376  }
377}
378
379/* upgrade from 2.20.3 to 2.20.4 */
380/* ***************************** */
381function upgrade_2203_2204()
382{
383  global $conf;
384
385  // Upgrading options
386  $query = '
387SELECT value
388  FROM '.CONFIG_TABLE.'
389WHERE param = "UserAdvManager"
390;';
391
392  $result = pwg_query($query);
393  $conf_UAM = pwg_db_fetch_assoc($result);
394   
395  $Newconf_UAM = unserialize($conf_UAM['value']);
396 
397  $Newconf_UAM[35] = 'false';
398 
399  $update_conf = serialize($Newconf_UAM);
400 
401  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
402}
403
404/* upgrade from 2.20.4 to 2.20.7 */
405/* ***************************** */
406function upgrade_2204_2207()
407{
408  global $conf;
409
410  // Upgrading options
411  $query = '
412SELECT value
413  FROM '.CONFIG_TABLE.'
414WHERE param = "UserAdvManager"
415;';
416
417  $result = pwg_query($query);
418  $conf_UAM = pwg_db_fetch_assoc($result);
419   
420  $Newconf_UAM = unserialize($conf_UAM['value']);
421 
422  $Newconf_UAM[36] = 'false';
423  $Newconf_UAM[37] = '-1';
424 
425  $update_conf = serialize($Newconf_UAM);
426
427  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
428}
429
430/* upgrade from 2.20.7 to 2.20.8 */
431/* ***************************** */
432function upgrade_2207_2208()
433{
434  global $conf;
435
436  // Upgrading options
437  $query = '
438SELECT value
439  FROM '.CONFIG_TABLE.'
440WHERE param = "UserAdvManager"
441;';
442
443  $result = pwg_query($query);
444  $conf_UAM = pwg_db_fetch_assoc($result);
445   
446  $Newconf_UAM = unserialize($conf_UAM['value']);
447
448  // Refactoring all configuration options
449  $Newconf_UAM[0] = $Newconf_UAM[0];
450  $Newconf_UAM[1] = $Newconf_UAM[1];
451  $Newconf_UAM[2] = $Newconf_UAM[2];
452  $Newconf_UAM[3] = $Newconf_UAM[3];
453  $Newconf_UAM[4] = $Newconf_UAM[4];
454  $Newconf_UAM[5] = $Newconf_UAM[6]; //remove osolete anonymus comments option
455  $Newconf_UAM[6] = $Newconf_UAM[7];
456  $Newconf_UAM[7] = $Newconf_UAM[8];
457  $Newconf_UAM[8] = $Newconf_UAM[9];
458  $Newconf_UAM[9] = $Newconf_UAM[10];
459  $Newconf_UAM[10] = $Newconf_UAM[11];
460  $Newconf_UAM[11] = $Newconf_UAM[12];
461  $Newconf_UAM[12] = $Newconf_UAM[13];
462  $Newconf_UAM[13] = $Newconf_UAM[14];
463  $Newconf_UAM[14] = $Newconf_UAM[15];
464  $Newconf_UAM[15] = $Newconf_UAM[16];
465  $Newconf_UAM[16] = $Newconf_UAM[17];
466  $Newconf_UAM[17] = $Newconf_UAM[18];
467  $Newconf_UAM[18] = $Newconf_UAM[19];
468  $Newconf_UAM[19] = $Newconf_UAM[20];
469  $Newconf_UAM[20] = $Newconf_UAM[21];
470  $Newconf_UAM[21] = $Newconf_UAM[22];
471  $Newconf_UAM[22] = $Newconf_UAM[23];
472  $Newconf_UAM[23] = $Newconf_UAM[24];
473  $Newconf_UAM[24] = $Newconf_UAM[25];
474  $Newconf_UAM[25] = $Newconf_UAM[26];
475  $Newconf_UAM[26] = $Newconf_UAM[27];
476  $Newconf_UAM[27] = $Newconf_UAM[28];
477  $Newconf_UAM[28] = $Newconf_UAM[29];
478  $Newconf_UAM[29] = $Newconf_UAM[30];
479  $Newconf_UAM[30] = $Newconf_UAM[31];
480  $Newconf_UAM[31] = $Newconf_UAM[32];
481  $Newconf_UAM[32] = $Newconf_UAM[33];
482  $Newconf_UAM[33] = $Newconf_UAM[34];
483  $Newconf_UAM[34] = $Newconf_UAM[35];
484 
485  // unset obsolete conf
486  unset ($Newconf_UAM[35]);
487  unset ($Newconf_UAM[36]);
488  unset ($Newconf_UAM[37]);
489 
490  $update_conf = serialize($Newconf_UAM);
491
492  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
493}
494
495
496/* upgrade from 2.20.8 to 2.30.0 */
497/* ***************************** */
498function upgrade_2208_2300()
499{
500  global $conf;
501
502  // Upgrading options
503  $query = '
504SELECT value
505  FROM '.CONFIG_TABLE.'
506WHERE param = "UserAdvManager"
507;';
508
509  $result = pwg_query($query);
510  $conf_UAM = pwg_db_fetch_assoc($result);
511   
512  $Newconf_UAM = unserialize($conf_UAM['value']);
513 
514  $Newconf_UAM[35] = '-1';
515  $Newconf_UAM[36] = '-1';
516  $Newconf_UAM[37] = '-1';
517  $Newconf_UAM[38] = 'false';
518
519  $update_conf = serialize($Newconf_UAM);
520
521  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
522
523  // Piwigo's native tables modifications for password reset function - Add pwdreset column
524  $query = '
525SHOW COLUMNS FROM '.USERS_TABLE.'
526LIKE "UAM_pwdreset"
527;';
528 
529  $result = pwg_query($query);
530
531  if(!pwg_db_fetch_row($result))
532  {
533    $q = '
534ALTER TABLE '.USERS_TABLE.'
535ADD UAM_pwdreset enum("true","false")
536;';
537    pwg_query($q);
538  }
539}
540?>
Note: See TracBrowser for help on using the repository browser.