diff options
author | plegall <plg@piwigo.org> | 2010-05-23 23:42:03 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2010-05-23 23:42:03 +0000 |
commit | 9bef83abe8f266ac0f2e7e367a1cb218aa247407 (patch) | |
tree | c84a83cd5fc917fea76c82c4ea76998ebfda3681 | |
parent | 7dccde68f1163953d81865304823f50d5a344c66 (diff) |
merge r6311 from branch 2.1 to trunk
bug 1683 fixed: as soon as an admin modifies the admin>conf>options>guest settings, registration is broken. This is because user_infos.theme/language are emptied (while they should not).
I have also added an "automatic repair" piece of code in get_default_user_info function. This piece of code should be removed for 2.2 with the appropriate migration task.
git-svn-id: http://piwigo.org/svn/trunk@6314 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | include/functions_user.inc.php | 41 | ||||
-rw-r--r-- | profile.php | 2 |
2 files changed, 43 insertions, 0 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 4d755c445..b8922ffec 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -796,6 +796,47 @@ function get_default_user_info($convert_str = true) unset($cache['default_user']['user_id']); unset($cache['default_user']['status']); unset($cache['default_user']['registration_date']); + + // theme and language fields may be null in the database (see + // bug:1683) This is absolutely not nice to have this code in this + // very place, but it avoids a complexe upgrade with an "automatic + // fix" in the database => this code should be removed after branch + // 2.1 if a migration tasks performs the job the same way + if (empty($cache['default_user']['theme'])) + { + mass_updates( + USER_INFOS_TABLE, + array( + 'primary' => array('user_id'), + 'update' => array('theme') + ), + array( + array( + 'user_id' => $conf['default_user_id'], + 'theme' => PHPWG_DEFAULT_TEMPLATE + ) + ) + ); + $cache['default_user']['theme'] = PHPWG_DEFAULT_TEMPLATE; + } + + if (empty($cache['default_user']['language'])) + { + mass_updates( + USER_INFOS_TABLE, + array( + 'primary' => array('user_id'), + 'update' => array('language') + ), + array( + array( + 'user_id' => $conf['default_user_id'], + 'language' => PHPWG_DEFAULT_LANGUAGE + ) + ) + ); + $cache['default_user']['language'] = PHPWG_DEFAULT_LANGUAGE; + } } } diff --git a/profile.php b/profile.php index 8a36d131c..fbbe46df1 100644 --- a/profile.php +++ b/profile.php @@ -105,6 +105,8 @@ function save_profile_from_post($userdata, &$errors) $_POST['theme'], $_POST['language'] ); + $_POST['theme'] = get_default_theme(); + $_POST['language'] = get_default_language(); } if ($conf['allow_user_customization'] or defined('IN_ADMIN')) |