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

Last change on this file since 12394 was 12271, checked in by Eric, 13 years ago
  • Bug 2447 fixed : Pre-filled text are localized for installation from scratch. If language is not supported by the plugin, the default language remains English.
  • maintain.inc.php refactory : Simplify installation from scratch and make code more readable.
  • Comments in all code are more readable.
  • Property svn:eol-style set to LF
File size: 13.6 KB
RevLine 
[3742]1<?php
2
[6255]3if(!defined('UAM_PATH'))
4{
5  define('UAM_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
6}
[3742]7
[5181]8include_once (UAM_PATH.'include/constants.php');
9include_once (UAM_PATH.'include/functions.inc.php');
[3742]10
[12271]11load_language('plugin.lang', UAM_PATH);
[5064]12
[12271]13
[3742]14function plugin_install()
15{
[3872]16        global $conf;
[12247]17
18/* ****************************************************************** */
19/* **************** BEGIN - Data preparation in vars **************** */
20/* ****************************************************************** */
21
[12271]22  $defaultUAM = array();
23  $defaultConfirmMail = array();
24
[12247]25  // Default global parameters for UserAdvManager conf
[12271]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 
[12247]67  // Default specific parameters for UserAdvManager ConfirmMail conf
[12271]68  // ---------------------------------------------------------------
69  $defaultConfirmMail[0] = 'false';                                 // UAM_CONFIRMMAIL_TIMEOUT_TRUE/FALSE
70  $defaultConfirmMail[1] = '5';                                     // UAM_CONFIRMMAIL_DELAY
71  $defaultConfirmMail[2] = l10n('UAM_Default_CfmMail_Remail_Txt1'); // UAM_CONFIRMMAIL_REMAIL_TXT1
72  $defaultConfirmMail[3] = 'false';                                 // UAM_CONFIRMMAIL_REMAIL_TRUE/FALSE
73  $defaultConfirmMail[4] = l10n('UAM_Default_CfmMail_Remail_Txt2'); // UAM_CONFIRMMAIL_REMAIL_TXT2
74  $defaultConfirmMail[5] = l10n('UAM_Default_CfmMail_Custom_Txt1'); // UAM_CONFIRMMAIL_CUSTOM_TXT1
75  $defaultConfirmMail[6] = l10n('UAM_Default_CfmMail_Custom_Txt2'); // UAM_CONFIRMMAIL_CUSTOM_TXT2
76 
[12247]77  // Set current plugin version in config table
[12271]78  // ------------------------------------------
[12247]79  $plugin =  PluginInfos(UAM_PATH);
80  $version = $plugin['version'];
81
82/* **************************************************************** */
83/* **************** END - Data preparation in vars **************** */
84/* **************************************************************** */
85
86
87/* ***************************************************************************** */
88/* **************** BEGIN - Database actions and initialization **************** */
89/* ***************************************************************************** */
90
91  // Create UserAdvManager conf if not already exists
[12271]92  // ------------------------------------------------
[9853]93        $query = '
94SELECT param
95  FROM '.CONFIG_TABLE.'
96WHERE param = "UserAdvManager"
97;';
98  $count = pwg_db_num_rows(pwg_query($query));
99 
100  if ($count == 0)
101  {
102    $q = '
[4143]103INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
[12271]104VALUES ("UserAdvManager","'.pwg_db_real_escape_string(serialize($defaultUAM)).'","UAM parameters")
[5056]105  ;';
[9853]106    pwg_query($q);
107  }
[4143]108
[12247]109  // Create UserAdvManager_ConfirmMail conf if not already exists
[12271]110  // ------------------------------------------------------------
[9853]111        $query = '
112SELECT param
113  FROM '.CONFIG_TABLE.'
114WHERE param = "UserAdvManager_ConfirmMail"
115;';
116  $count = pwg_db_num_rows(pwg_query($query));
117 
118  if ($count == 0)
119  {
120    $q = '
[4143]121INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
[12271]122VALUES ("UserAdvManager_ConfirmMail","'.pwg_db_real_escape_string(serialize($defaultConfirmMail)).'","UAM ConfirmMail parameters")
[5056]123  ;';
[9853]124    pwg_query($q);
125  }
126
[12247]127  // Create UserAdvManager_Redir conf if not already exists
[12271]128  // ------------------------------------------------------
[9853]129        $query = '
130SELECT param
131  FROM '.CONFIG_TABLE.'
132WHERE param = "UserAdvManager_Redir"
133;';
134  $count = pwg_db_num_rows(pwg_query($query));
[6775]135 
[9853]136  if ($count == 0)
137  {
138    $q = '
[6775]139INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
140VALUES ("UserAdvManager_Redir","0","UAM Redirections")
141  ;';
[9853]142    pwg_query($q);
143  }
[5056]144
[12247]145  // Create UserAdvManager_Version conf if not already exists
[12271]146  // --------------------------------------------------------
[9853]147        $query = '
148SELECT param
149  FROM '.CONFIG_TABLE.'
[11095]150WHERE param = "UserAdvManager_Version"
[9853]151;';
152  $count = pwg_db_num_rows(pwg_query($query));
153 
154  if ($count == 0)
155  {
156    $q = '
[9846]157INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
158VALUES ("UserAdvManager_Version","'.$version.'","UAM version check")
159  ;';
[9853]160    pwg_query($q);
161  }
[5056]162
[12247]163  // Create USER_CONFIRM_MAIL_TABLE
[12271]164  // ------------------------------
[3742]165        $q = "
[4143]166CREATE TABLE IF NOT EXISTS ".USER_CONFIRM_MAIL_TABLE." (
167  id varchar(50) NOT NULL default '',
168  user_id smallint(5) NOT NULL default '0',
169  mail_address varchar(255) default NULL,
170  status enum('webmaster','admin','normal','generic','guest') default NULL,
171  date_check datetime default NULL,
[4380]172  reminder ENUM('true','false') NULL,
[4143]173PRIMARY KEY  (id)
174  )
[9090]175ENGINE=MyISAM;";
[3742]176  pwg_query($q);
[4135]177
[12247]178  // Create USER_LASTVISIT_TABLE
[12271]179  // ---------------------------
[4135]180        $q = "
[4143]181CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
182  user_id SMALLINT(5) NOT NULL DEFAULT '0',
183  lastvisit DATETIME NULL DEFAULT NULL,
184  reminder ENUM('true','false') NULL,
185PRIMARY KEY (`user_id`)
186  )
[9090]187ENGINE=MyISAM;";
[4135]188  pwg_query($q);
[12239]189
[12247]190  // Piwigo's native tables modifications for password reset function - Add pwdreset column if not already exists
[12271]191  // ------------------------------------------------------------------------------------------------------------
[12239]192  $query = '
193SHOW COLUMNS FROM '.USERS_TABLE.'
194LIKE "UAM_pwdreset"
195;';
196 
197  $result = pwg_query($query);
198
199  if(!pwg_db_fetch_row($result))
200  {
201    $q = '
202ALTER TABLE '.USERS_TABLE.'
203ADD UAM_pwdreset enum("true","false")
204;';
205    pwg_query($q);
206  }
[12247]207
208/* *************************************************************************** */
209/* **************** END - Database actions and initialization **************** */
210/* *************************************************************************** */
[3742]211}
212
[5064]213
[3872]214function plugin_activate()
215{
[5064]216  global $conf;
[5056]217
[4952]218/* Cleaning obsolete files */
[5064]219/* *********************** */
220  clean_obsolete_files();
[5762]221 
222  include_once (UAM_PATH.'include/upgradedb.inc.php');
[5056]223
[5762]224/* Check if old version is < 2.15 */
225/* ****************************** */
[5593]226        $query = '
227SELECT param
228  FROM '.CONFIG_TABLE.'
[5762]229WHERE param = "nbc_UserAdvManager"
[5593]230;';
[6251]231  $count1 = pwg_db_num_rows(pwg_query($query));
232 
233  $query = '
234SELECT *
235  FROM '.CONFIG_TABLE.'
236WHERE param = "nbc_UserAdvManager_ConfirmMail"
237;';
238  $count2 = pwg_db_num_rows(pwg_query($query)); 
[5056]239
[5593]240/* If old params exist an upgrade is needed */
241/* **************************************** */
[6251]242  if ($count1 == 1)
[5593]243  {
[4380]244/* Check for upgrade from 2.10 to 2.11 */
[5064]245/* *********************************** */
[6251]246    if ($count1 == 1 and $count2 == 0)
[5593]247    {
248    /* upgrade from branch 2.10 to 2.11 */
249    /* ******************************** */
[5762]250      upgrade_210_211();
[5593]251    }
[4135]252
[4380]253
254/* Check for upgrade from 2.11 to 2.12 */
[5064]255/* *********************************** */
[5593]256    if (!table_exist(USER_LASTVISIT_TABLE))
257    {
258    /* upgrade from branch 2.11 to 2.12 */
259    /* ******************************** */
[5762]260                upgrade_211_212();
[5593]261    }
[4380]262
263
264/* Check for upgrade from 2.12 to 2.13 */
[5064]265/* *********************************** */
[5593]266    $fields = mysql_list_fields($conf['db_base'],USER_CONFIRM_MAIL_TABLE);
267    $nb_fields = mysql_num_fields($fields); 
[4380]268
[5593]269    if ($nb_fields < 6)
270    {
271    /* upgrade from branch 2.12 to 2.13 */
272    /* ******************************** */
[5762]273      upgrade_212_213();
[5593]274    }
[5056]275
276
[5064]277/* Serializing conf parameters - Available since 2.14.0 */
278/* **************************************************** */
[5593]279    if (unserialize($conf['nbc_UserAdvManager']) === false)
280    {
281    /* upgrade from branch 2.13 to 2.14 */
282    /* ******************************** */
[5762]283      upgrade_213_214();
[5593]284    }
[5762]285   
[6251]286    /* upgrade from branch 2.14 to 2.15 */
287    /* ******************************** */
288      upgrade_214_215();
289  }
290
[6775]291/* Old version is > 2.15 */
292/* ********************* */
293        $query = '
[5181]294SELECT param
295  FROM '.CONFIG_TABLE.'
[6775]296WHERE param = "UserAdvManager_Redir"
[5181]297;';
[6251]298  $count = pwg_db_num_rows(pwg_query($query));
[5181]299 
[6775]300  if ($count == 0)
[6251]301  {
[6775]302    upgrade_2153_2154();
[5593]303  }
[6354]304
[8065]305/* Check for upgrade from 2.15 to 2.16 */
306/* *********************************** */
[7955]307        $query = '
308SELECT param
309  FROM '.CONFIG_TABLE.'
310WHERE param = "UserAdvManager_Version"
311;';
312  $count = pwg_db_num_rows(pwg_query($query));
313 
314  if ($count == 0)
315  {
[8065]316    /* upgrade from branch 2.15 to 2.16 */
317    /* ******************************** */
318    upgrade_215_2160();
[7955]319  }
320
[10957]321/* Check database upgrade since version 2.16.0 */
[12271]322/* ******************************************* */
[10957]323  if (isset($conf['UserAdvManager_Version']))
[9135]324  {
[10957]325    if (version_compare($conf['UserAdvManager_Version'], '2.20.0') < 0)
326    {
[9135]327    /* upgrade from branch 2.16 to 2.20 */
328    /* ******************************** */
[10957]329      upgrade_216_220();
330    }
331   
332    if (version_compare($conf['UserAdvManager_Version'], '2.20.4') < 0)
333    {
334    /* upgrade from version 2.20.3 to 2.20.4 */
335    /* ************************************* */
336      upgrade_2203_2204();
337    }
338   
339    if (version_compare($conf['UserAdvManager_Version'], '2.20.7') < 0)
340    {
341    /* upgrade from version 2.20.4 to 2.20.7 */
342    /* ************************************* */
343      upgrade_2204_2207();
344    }
[11018]345
346    if (version_compare($conf['UserAdvManager_Version'], '2.20.8') < 0)
347    {
348    /* upgrade from version 2.20.7 to 2.20.8 */
349    /* ************************************* */
350      upgrade_2207_2208();
351    }
[12189]352
353    if (version_compare($conf['UserAdvManager_Version'], '2.30.0') < 0)
354    {
355    /* upgrade from version 2.20.8 to 2.30.0 */
356    /* ************************************* */
357      upgrade_2208_2300();
358    }
[9135]359  }
360
[10706]361  // Update plugin version number in #_config table and check consistency of #_plugins table
[12271]362  // ---------------------------------------------------------------------------------------
[10144]363  UAM_version_update();
364
365  load_conf_from_db('param like \'UserAdvManager\\_%\'');
[3872]366}
[3742]367
[4135]368
[3742]369function plugin_uninstall()
370{
371  global $conf;
372
[5181]373  if (isset($conf['UserAdvManager']))
[3742]374  {
375    $q = '
[4143]376DELETE FROM '.CONFIG_TABLE.'
[5181]377WHERE param="UserAdvManager"
[4143]378;';
[3742]379
380    pwg_query($q);
381  }
382
[5181]383  if (isset($conf['UserAdvManager_ConfirmMail']))
[3881]384  {
385    $q = '
[4143]386DELETE FROM '.CONFIG_TABLE.'
[5181]387WHERE param="UserAdvManager_ConfirmMail"
[4143]388;';
[3742]389
[3881]390    pwg_query($q);
391  }
392
[6822]393  if (isset($conf['UserAdvManager_Redir']))
394  {
395    $q = '
396DELETE FROM '.CONFIG_TABLE.'
397WHERE param="UserAdvManager_Redir"
398;';
399
400    pwg_query($q);
401  }
402
[8110]403  if (isset($conf['UserAdvManager_Version']))
404  {
405    $q = '
406DELETE FROM '.CONFIG_TABLE.'
407WHERE param="UserAdvManager_Version"
408;';
409
410    pwg_query($q);
411  }
412
[12239]413  $q = '
414DROP TABLE '.USER_CONFIRM_MAIL_TABLE.'
415;';
[3742]416  pwg_query( $q );
[4135]417
[12239]418  $q = '
419DROP TABLE '.USER_LASTVISIT_TABLE.'
420;';
[4135]421  pwg_query( $q );
[12239]422
423  $q = '
424ALTER TABLE '.USERS_TABLE.'
425DROP UAM_pwdreset
426;';
427  pwg_query($q);
[3742]428}
429?>
Note: See TracBrowser for help on using the repository browser.