source: extensions/UserAdvManager/trunk/maintain.inc.php @ 18509

Last change on this file since 18509 was 18479, checked in by Eric, 12 years ago

Next version should be 2.41.0 instead of 2.40.6 because there're too much structural modifications in code, database and files removed.

  • Property svn:eol-style set to LF
File size: 15.6 KB
Line 
1<?php
2
3if(!defined('UAM_PATH'))
4{
5  define('UAM_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
6}
7
8include_once (UAM_PATH.'include/constants.php');
9include_once (UAM_PATH.'include/functions.inc.php');
10
11load_language('plugin.lang', UAM_PATH);
12
13
14function plugin_install()
15{
16        global $conf;
17
18/* ****************************************************************** */
19/* **************** BEGIN - Data preparation in vars **************** */
20/* ****************************************************************** */
21
22  $defaultUAM = array();
23  $defaultConfirmMail = array();
24
25  // Default global parameters for UserAdvManager conf
26  // -------------------------------------------------
27  $defaultUAM[0] = 'false';                                         // UAM_MAIL_INFO_TRUE/FALSE
28  $defaultUAM[1] = 'false';                                         // UAM_CONFIRM_MAIL_TRUE/FALSE
29  $defaultUAM[2] = '-1';                                            // UAM_No_Confirm_Group
30  $defaultUAM[3] = '-1';                                            // UAM_Validated_Group
31  $defaultUAM[4] = '-1';                                            // UAM_Validated_Status
32  $defaultUAM[5] = 'false';                                         // UAM_USERNAME_CHAR_TRUE
33  $defaultUAM[6] = '';                                              // UAM_USERNAME_CHAR_LIST
34  $defaultUAM[7] = '-1';                                            // UAM_No_Confirm_Status
35  $defaultUAM[8] = l10n('UAM_Default_InfoMail_Txt');                // UAM_MAILINFO_TEXT
36  $defaultUAM[9] = l10n('UAM_Default_ConfirmMail_Txt');             // UAM_CONFIRMMAIL_TEXT
37  $defaultUAM[10] = 'false';                                        // UAM_MAILEXCLUSION_TRUE/FALSE
38  $defaultUAM[11] = '';                                             // UAM_MAILEXCLUSION_LIST
39  $defaultUAM[12] = 'false';                                        // UAM_PASSWORDENF_TRUE/FALSE
40  $defaultUAM[13] = '100';                                          // UAM_PASSWORD_SCORE
41  $defaultUAM[14] = 'false';                                        // UAM_ADMINPASSWENF_TRUE/FALSE
42  $defaultUAM[15] = 'false';                                        // UAM_GHOSTRACKER_TRUE/FALSE
43  $defaultUAM[16] = '10';                                           // UAM_GHOSTRACKER_DAYLIMIT
44  $defaultUAM[17] = l10n('UAM_Default_GhstReminder_Txt');           // UAM_GHOSTRACKER_REMINDERTEXT
45  $defaultUAM[18] = 'false';                                        // UAM_ADDLASTVISIT_TRUE/FALSE
46  $defaultUAM[19] = 'false';                                        // UAM_ADMINCONFMAIL_TRUE/FALSE
47  $defaultUAM[20] = 'false';                                        // UAM_REDIRTOPROFILE_TRUE/FALSE
48  $defaultUAM[21] = 'false';                                        // UAM_GTAUTO_TRUE/FALSE
49  $defaultUAM[22] = 'false';                                        // UAM_GTAUTOMAIL_TRUE/FALSE
50  $defaultUAM[23] = l10n('UAM_Default_GhstDeletion_Txt');           // UAM_GTAUTODEL_TEXT
51  $defaultUAM[24] = l10n('UAM_Default_GhstDemotion_Txt');           // UAM_GTAUTOMAILTEXT
52  $defaultUAM[25] = '-1';                                           // UAM_Downgrade_Group
53  $defaultUAM[26] = '-1';                                           // UAM_Downgrade_Status
54  $defaultUAM[27] = l10n('UAM_Default_AdminValidation_Txt');        // UAM_ADMINVALIDATIONMAIL_TEXT
55  $defaultUAM[28] = 'false';                                        // UAM_CUSTOMPASSWRETR_TRUE/FALSE
56  $defaultUAM[29] = l10n('UAM_Default_PwdRequest_Txt');             // UAM_CUSTOMPASSWRETR_TEXT
57  $defaultUAM[30] = 'false';                                        // UAM_USRAUTO_TRUE/FALSE
58  $defaultUAM[31] = l10n('UAM_Default_ValidationTimeout_Txt');      // UAM_USRAUTODEL_TEXT
59  $defaultUAM[32] = 'false';                                        // UAM_USRAUTOMAIL_TRUE/FALSE
60  $defaultUAM[33] = 'false';                                        // UAM_STUFFS_TRUE/FALSE
61  $defaultUAM[34] = 'false';                                        // UAM_HIDEPASSW_TRUE/FALSE
62  $defaultUAM[35] = '-1';                                           // UAM_NO_VALID_LEVEL
63  $defaultUAM[36] = '-1';                                           // UAM_VALID_LEVEL
64  $defaultUAM[37] = '-1';                                           // UAM_DOWNGRADE_LEVEL
65  $defaultUAM[38] = 'false';                                        // UAM_PWDRESET_TRUE/FALSE
66  $defaultUAM[39] = 'false';                                        // UAM_REJECTCONNECT_TRUE/FALSE
67  $defaultUAM[40] = l10n('UAM_Default_RejectConnexion_Txt');        // UAM_REJECTCONNECT_TEXT
68  $defaultUAM[41] = l10n('UAM_Default_ConfirmMail_Subject');        // UAM_CONFIRMMAIL_SUBJECT
69  $defaultUAM[42] = l10n('UAM_Default_ConfirmMail_Remail_Subject'); // UAM_CONFIRMMAIL_REMAIL_SUBJECT
70  $defaultUAM[43] = l10n('UAM_Default_InfoMail_Subject');           // UAM_INFOMAIL_SUBJECT
71  $defaultUAM[44] = l10n('UAM_Default_GTAutoMail_Subject');         // UAM_GTAUTOMAIL_SUBJECT
72  $defaultUAM[45] = l10n('UAM_Default_GTReminder_Subject');         // UAM_GTREMINDER_SUBJECT
73  $defaultUAM[46] = l10n('UAM_Default_AdminValidationMail_Subject');// UAM_ADMINVALIDATIONMAIL_SUBJECT
74 
75  // Default specific parameters for UserAdvManager ConfirmMail conf
76  // ---------------------------------------------------------------
77  $defaultConfirmMail[0] = 'false';                                 // UAM_CONFIRMMAIL_TIMEOUT_TRUE/FALSE
78  $defaultConfirmMail[1] = '5';                                     // UAM_CONFIRMMAIL_DELAY
79  $defaultConfirmMail[2] = l10n('UAM_Default_CfmMail_Remail_Txt1'); // UAM_CONFIRMMAIL_REMAIL_TXT1
80  $defaultConfirmMail[3] = 'false';                                 // UAM_CONFIRMMAIL_REMAIL_TRUE/FALSE
81  $defaultConfirmMail[4] = l10n('UAM_Default_CfmMail_Remail_Txt2'); // UAM_CONFIRMMAIL_REMAIL_TXT2
82  $defaultConfirmMail[5] = l10n('UAM_Default_CfmMail_Custom_Txt1'); // UAM_CONFIRMMAIL_CUSTOM_TXT1
83  $defaultConfirmMail[6] = l10n('UAM_Default_CfmMail_Custom_Txt2'); // UAM_CONFIRMMAIL_CUSTOM_TXT2
84 
85  // Set current plugin version in config table
86  // ------------------------------------------
87  $plugin =  PluginInfos(UAM_PATH);
88  $version = $plugin['version'];
89
90/* **************************************************************** */
91/* **************** END - Data preparation in vars **************** */
92/* **************************************************************** */
93
94
95/* ***************************************************************************** */
96/* **************** BEGIN - Database actions and initialization **************** */
97/* ***************************************************************************** */
98
99  // Create UserAdvManager conf if not already exists
100  // ------------------------------------------------
101        $query = '
102SELECT param
103  FROM '.CONFIG_TABLE.'
104WHERE param = "UserAdvManager"
105;';
106  $count = pwg_db_num_rows(pwg_query($query));
107 
108  if ($count == 0)
109  {
110    $q = '
111INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
112VALUES ("UserAdvManager","'.pwg_db_real_escape_string(serialize($defaultUAM)).'","UAM parameters")
113  ;';
114    pwg_query($q);
115  }
116
117  // Create UserAdvManager_ConfirmMail conf if not already exists
118  // ------------------------------------------------------------
119        $query = '
120SELECT param
121  FROM '.CONFIG_TABLE.'
122WHERE param = "UserAdvManager_ConfirmMail"
123;';
124  $count = pwg_db_num_rows(pwg_query($query));
125 
126  if ($count == 0)
127  {
128    $q = '
129INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
130VALUES ("UserAdvManager_ConfirmMail","'.pwg_db_real_escape_string(serialize($defaultConfirmMail)).'","UAM ConfirmMail parameters")
131  ;';
132    pwg_query($q);
133  }
134
135  // Create UserAdvManager_Redir conf if not already exists
136  // ------------------------------------------------------
137        $query = '
138SELECT param
139  FROM '.CONFIG_TABLE.'
140WHERE param = "UserAdvManager_Redir"
141;';
142  $count = pwg_db_num_rows(pwg_query($query));
143 
144  if ($count == 0)
145  {
146    $q = '
147INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
148VALUES ("UserAdvManager_Redir","0","UAM Redirections")
149  ;';
150    pwg_query($q);
151  }
152
153  // Create UserAdvManager_Version conf if not already exists
154  // --------------------------------------------------------
155        $query = '
156SELECT param
157  FROM '.CONFIG_TABLE.'
158WHERE param = "UserAdvManager_Version"
159;';
160  $count = pwg_db_num_rows(pwg_query($query));
161 
162  if ($count == 0)
163  {
164    $q = '
165INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
166VALUES ("UserAdvManager_Version","'.$version.'","UAM version check")
167  ;';
168    pwg_query($q);
169  }
170
171  // Create USER_CONFIRM_MAIL_TABLE
172  // ------------------------------
173        $q = "
174CREATE TABLE IF NOT EXISTS ".USER_CONFIRM_MAIL_TABLE." (
175  id varchar(50) NOT NULL default '',
176  user_id smallint(5) NOT NULL default '0',
177  mail_address varchar(255) default NULL,
178  status enum('webmaster','admin','normal','generic','guest') default NULL,
179  date_check datetime default NULL,
180  reminder ENUM('true','false') NULL,
181PRIMARY KEY  (id)
182  )
183ENGINE=MyISAM;";
184  pwg_query($q);
185
186  // Create USER_LASTVISIT_TABLE
187  // ---------------------------
188        $q = "
189CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
190  user_id SMALLINT(5) NOT NULL DEFAULT '0',
191  lastvisit DATETIME NULL DEFAULT NULL,
192  reminder ENUM('true','false') NULL,
193PRIMARY KEY (`user_id`)
194  )
195ENGINE=MyISAM;";
196  pwg_query($q);
197
198  // Piwigo's native tables modifications for password reset function - Add pwdreset column if not already exists
199  // ------------------------------------------------------------------------------------------------------------
200  $query = '
201SHOW COLUMNS FROM '.USERS_TABLE.'
202LIKE "UAM_pwdreset"
203;';
204 
205  $result = pwg_query($query);
206
207  if(!pwg_db_fetch_row($result))
208  {
209    $q = '
210ALTER TABLE '.USERS_TABLE.'
211ADD UAM_pwdreset enum("true","false")
212;';
213    pwg_query($q);
214  }
215
216  // Piwigo's native tables modifications for validation status
217  // ----------------------------------------------------------
218  $query = '
219SHOW COLUMNS FROM '.USERS_TABLE.'
220LIKE "UAM_validated"
221;';
222 
223  $result = pwg_query($query);
224
225  if(!pwg_db_fetch_row($result))
226  {
227    $q = '
228ALTER TABLE '.USERS_TABLE.'
229ADD UAM_validated enum("true","false")
230;';
231    pwg_query($q);
232  }
233
234/* *************************************************************************** */
235/* **************** END - Database actions and initialization **************** */
236/* *************************************************************************** */
237}
238
239
240function plugin_activate()
241{
242  global $conf;
243
244/* Cleaning obsolete files */
245/* *********************** */
246  clean_obsolete_files();
247 
248  include_once (UAM_PATH.'include/upgradedb.inc.php');
249
250/* Check if old version is < 2.15 */
251/* ****************************** */
252        $query = '
253SELECT param
254  FROM '.CONFIG_TABLE.'
255WHERE param = "nbc_UserAdvManager"
256;';
257  $count1 = pwg_db_num_rows(pwg_query($query));
258 
259  $query = '
260SELECT *
261  FROM '.CONFIG_TABLE.'
262WHERE param = "nbc_UserAdvManager_ConfirmMail"
263;';
264  $count2 = pwg_db_num_rows(pwg_query($query)); 
265
266/* If old params exist an upgrade is needed */
267/* **************************************** */
268  if ($count1 == 1)
269  {
270/* Check for upgrade from 2.10 to 2.11 */
271/* *********************************** */
272    if ($count1 == 1 and $count2 == 0)
273    {
274    /* upgrade from branch 2.10 to 2.11 */
275    /* ******************************** */
276      upgrade_210_211();
277    }
278
279
280/* Check for upgrade from 2.11 to 2.12 */
281/* *********************************** */
282    if (!table_exist(USER_LASTVISIT_TABLE))
283    {
284    /* upgrade from branch 2.11 to 2.12 */
285    /* ******************************** */
286                upgrade_211_212();
287    }
288
289
290/* Check for upgrade from 2.12 to 2.13 */
291/* *********************************** */
292    $fields = mysql_list_fields($conf['db_base'],USER_CONFIRM_MAIL_TABLE);
293    $nb_fields = mysql_num_fields($fields); 
294
295    if ($nb_fields < 6)
296    {
297    /* upgrade from branch 2.12 to 2.13 */
298    /* ******************************** */
299      upgrade_212_213();
300    }
301
302
303/* Serializing conf parameters - Available since 2.14.0 */
304/* **************************************************** */
305    if (unserialize($conf['nbc_UserAdvManager']) === false)
306    {
307    /* upgrade from branch 2.13 to 2.14 */
308    /* ******************************** */
309      upgrade_213_214();
310    }
311   
312    /* upgrade from branch 2.14 to 2.15 */
313    /* ******************************** */
314      upgrade_214_215();
315  }
316
317/* Old version is > 2.15 */
318/* ********************* */
319        $query = '
320SELECT param
321  FROM '.CONFIG_TABLE.'
322WHERE param = "UserAdvManager_Redir"
323;';
324  $count = pwg_db_num_rows(pwg_query($query));
325 
326  if ($count == 0)
327  {
328    upgrade_2153_2154();
329  }
330
331/* Check for upgrade from 2.15 to 2.16 */
332/* *********************************** */
333        $query = '
334SELECT param
335  FROM '.CONFIG_TABLE.'
336WHERE param = "UserAdvManager_Version"
337;';
338  $count = pwg_db_num_rows(pwg_query($query));
339 
340  if ($count == 0)
341  {
342    /* upgrade from branch 2.15 to 2.16 */
343    /* ******************************** */
344    upgrade_215_2160();
345  }
346
347/* Check database upgrade since version 2.16.0 */
348/* ******************************************* */
349  if (isset($conf['UserAdvManager_Version']))
350  {
351    if (version_compare($conf['UserAdvManager_Version'], '2.20.0') < 0)
352    {
353    /* upgrade from branch 2.16 to 2.20 */
354    /* ******************************** */
355      upgrade_216_220();
356    }
357   
358    if (version_compare($conf['UserAdvManager_Version'], '2.20.4') < 0)
359    {
360    /* upgrade from version 2.20.3 to 2.20.4 */
361    /* ************************************* */
362      upgrade_2203_2204();
363    }
364   
365    if (version_compare($conf['UserAdvManager_Version'], '2.20.7') < 0)
366    {
367    /* upgrade from version 2.20.4 to 2.20.7 */
368    /* ************************************* */
369      upgrade_2204_2207();
370    }
371
372    if (version_compare($conf['UserAdvManager_Version'], '2.20.8') < 0)
373    {
374    /* upgrade from version 2.20.7 to 2.20.8 */
375    /* ************************************* */
376      upgrade_2207_2208();
377    }
378
379    if (version_compare($conf['UserAdvManager_Version'], '2.30.0') < 0)
380    {
381    /* upgrade from version 2.20.8 to 2.30.0 */
382    /* ************************************* */
383      upgrade_2208_2300();
384    }
385
386    if (version_compare($conf['UserAdvManager_Version'], '2.30.2') < 0)
387    {
388    /* upgrade from version 2.30.x to 2.30.2 */
389    /* ************************************* */
390      upgrade_2300_2302();
391    }
392
393    if (version_compare($conf['UserAdvManager_Version'], '2.40.0') < 0)
394    {
395    /* upgrade from version 2.30.x to 2.40.0 */
396    /* ************************************* */
397      upgrade_2300_2400();
398    }
399
400    if (version_compare($conf['UserAdvManager_Version'], '2.41.0') < 0)
401    {
402    /* upgrade from version 2.40.x to 2.41.0 */
403    /* ************************************* */
404      upgrade_2400_2410();
405    }
406  }
407
408  // Update plugin version number in #_config table and check consistency of #_plugins table
409  // ---------------------------------------------------------------------------------------
410  UAM_version_update();
411
412  load_conf_from_db('param like \'UserAdvManager\\_%\'');
413}
414
415
416function plugin_uninstall()
417{
418  global $conf;
419
420  if (isset($conf['UserAdvManager']))
421  {
422    $q = '
423DELETE FROM '.CONFIG_TABLE.'
424WHERE param="UserAdvManager"
425;';
426
427    pwg_query($q);
428  }
429
430  if (isset($conf['UserAdvManager_ConfirmMail']))
431  {
432    $q = '
433DELETE FROM '.CONFIG_TABLE.'
434WHERE param="UserAdvManager_ConfirmMail"
435;';
436
437    pwg_query($q);
438  }
439
440  if (isset($conf['UserAdvManager_Redir']))
441  {
442    $q = '
443DELETE FROM '.CONFIG_TABLE.'
444WHERE param="UserAdvManager_Redir"
445;';
446
447    pwg_query($q);
448  }
449
450  if (isset($conf['UserAdvManager_Version']))
451  {
452    $q = '
453DELETE FROM '.CONFIG_TABLE.'
454WHERE param="UserAdvManager_Version"
455;';
456
457    pwg_query($q);
458  }
459
460  $q = '
461DROP TABLE '.USER_CONFIRM_MAIL_TABLE.'
462;';
463  pwg_query( $q );
464
465  $q = '
466DROP TABLE '.USER_LASTVISIT_TABLE.'
467;';
468  pwg_query( $q );
469
470  $q = '
471ALTER TABLE '.USERS_TABLE.'
472DROP UAM_pwdreset
473;';
474  pwg_query($q);
475
476  $q = '
477ALTER TABLE '.USERS_TABLE.'
478DROP UAM_validated
479;';
480  pwg_query($q);
481}
482?>
Note: See TracBrowser for help on using the repository browser.