aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2012-04-08 21:59:06 +0200
committerAndreas Fischer <bantu@phpbb.com>2012-04-08 21:59:06 +0200
commit156ae40d6fae2067a65a2125924e39e8dc5f35e1 (patch)
tree59bd94fe14d2b3ff69b43c346c2416cc4a21ab8a
parent3ec941937afc5cbcd0313a6a5cee394c6f4113f2 (diff)
parent2a48284fc9125edad2dbd9de41dfb1ef61926b6b (diff)
downloadforums-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.php21
-rw-r--r--phpBB/includes/ucp/ucp_prefs.php9
-rw-r--r--phpBB/install/database_update.php28
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;
}
}