diff options
author | Andreas Fischer <bantu@phpbb.com> | 2012-04-08 21:59:06 +0200 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2012-04-08 21:59:06 +0200 |
commit | 156ae40d6fae2067a65a2125924e39e8dc5f35e1 (patch) | |
tree | 59bd94fe14d2b3ff69b43c346c2416cc4a21ab8a | |
parent | 3ec941937afc5cbcd0313a6a5cee394c6f4113f2 (diff) | |
parent | 2a48284fc9125edad2dbd9de41dfb1ef61926b6b (diff) | |
download | forums-156ae40d6fae2067a65a2125924e39e8dc5f35e1.tar forums-156ae40d6fae2067a65a2125924e39e8dc5f35e1.tar.gz forums-156ae40d6fae2067a65a2125924e39e8dc5f35e1.tar.bz2 forums-156ae40d6fae2067a65a2125924e39e8dc5f35e1.tar.xz forums-156ae40d6fae2067a65a2125924e39e8dc5f35e1.zip |
Merge remote-tracking branch 'sadu/ticket/10561' into develop-olympus
* sadu/ticket/10561:
[ticket/10561] Removed extra tabs, changes made to $db->sql_query()
[ticket/10561] Changed $temp_style_id to $style_id
[ticket/10561] Added function desc for phpbb_style_is_active()
[ticket/10561] Casted $config['default_style'] to int
[ticket/10561] Reverted to phpbb_style_is_active()
[ticket/10561] Added to database_update:database_update_info()
[ticket/10561] Added section in database_update.php
[ticket/10561] Moved and renamed the funtion validate_style().
[ticket/10561] Fixed syntax error and renamed return variables.
[ticket/10561] Changes made to $db->sql_fetchrow().
[ticket/10561] Changes made to function phpbb_style_is_active().
[ticket/10561] All users can choose deactivated styles (fixed).
-rw-r--r-- | phpBB/includes/functions_user.php | 21 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_prefs.php | 9 | ||||
-rw-r--r-- | phpBB/install/database_update.php | 28 |
3 files changed, 57 insertions, 1 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index 10fb57ea97..83316be2a3 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -1949,6 +1949,27 @@ function validate_jabber($jid) } /** +* Verifies whether a style ID corresponds to an active style. +* +* @param int $style_id The style_id of a style which should be checked if activated or not. +* @return boolean +*/ +function phpbb_style_is_active($style_id) +{ + global $db; + + $sql = 'SELECT style_active + FROM ' . STYLES_TABLE . ' + WHERE style_id = '. (int) $style_id; + $result = $db->sql_query($sql); + + $style_is_active = (bool) $db->sql_fetchfield('style_active'); + $db->sql_freeresult($result); + + return $style_is_active; +} + +/** * Remove avatar */ function avatar_delete($mode, $row, $clean_db = false) diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php index 13167b2b3d..17d7d23f02 100644 --- a/phpBB/includes/ucp/ucp_prefs.php +++ b/phpBB/includes/ucp/ucp_prefs.php @@ -61,7 +61,14 @@ class ucp_prefs if ($submit) { - $data['style'] = ($config['override_user_style']) ? $config['default_style'] : $data['style']; + if ($config['override_user_style']) + { + $data['style'] = (int) $config['default_style']; + } + else if (!phpbb_style_is_active($data['style'])) + { + $data['style'] = (int) $user->data['user_style']; + } $error = validate_data($data, array( 'dateformat' => array('string', false, 1, 30), diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index a1b7dcd47f..6097341ace 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -993,6 +993,8 @@ function database_update_info() '3.0.10-RC2' => array(), // No changes from 3.0.10-RC3 to 3.0.10 '3.0.10-RC3' => array(), + // No changes from 3.0.10 to 3.0.11-RC1 + '3.0.10' => array(), /** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.11-RC1 */ ); @@ -2024,6 +2026,32 @@ function change_database_data(&$no_updates, $version) // No changes from 3.0.10-RC3 to 3.0.10 case '3.0.10-RC3': break; + + // Changes from 3.0.10 to 3.0.11-RC1 + case '3.0.10': + // Updates users having current style a deactivated one + $sql = 'SELECT style_id + FROM ' . STYLES_TABLE . ' + WHERE style_active = 0'; + $result = $db->sql_query($sql); + + $deactivated_style_ids = array(); + while ($style_id = $db->sql_fetchfield('style_id', false, $result)) + { + $deactivated_style_ids[] = (int) $style_id; + } + $db->sql_freeresult($result); + + if (!empty($deactivated_style_ids)) + { + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_style = ' . (int) $config['default_style'] .' + WHERE ' . $db->sql_in_set('user_style', $deactivated_style_ids); + _sql($sql, $errored, $error_ary); + } + + $no_updates = false; + break; } } |