diff options
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/db/migration/data/v310/style_update_p1.php | 10 | ||||
| -rw-r--r-- | phpBB/phpbb/db/migration/data/v32x/fix_user_styles.php | 50 | ||||
| -rw-r--r-- | phpBB/phpbb/user.php | 18 | 
3 files changed, 55 insertions, 23 deletions
| diff --git a/phpBB/phpbb/db/migration/data/v310/style_update_p1.php b/phpBB/phpbb/db/migration/data/v310/style_update_p1.php index 2c7b7edf2e..f50ab33830 100644 --- a/phpBB/phpbb/db/migration/data/v310/style_update_p1.php +++ b/phpBB/phpbb/db/migration/data/v310/style_update_p1.php @@ -160,12 +160,12 @@ class style_update_p1 extends \phpbb\db\migration\migration  				FROM ' . STYLES_TABLE . "  				WHERE style_name = 'prosilver'";  			$result = $this->sql_query($sql); -			$default_style = $this->db->sql_fetchfield('style_id'); +			$default_style = (int) $this->db->sql_fetchfield('style_id');  			$this->db->sql_freeresult($result);  			$this->config->set('default_style', $default_style); -			$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = 0'; +			$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = ' .  (int) $default_style;  			$this->sql_query($sql);  		}  		else @@ -183,9 +183,9 @@ class style_update_p1 extends \phpbb\db\migration\migration  			}  			// Reset styles for users -			$this->sql_query('UPDATE ' . USERS_TABLE . ' -				SET user_style = 0 -				WHERE ' . $this->db->sql_in_set('user_style', $valid_styles, true)); +			$this->sql_query('UPDATE ' . USERS_TABLE . " +				SET user_style = '" . (int) $valid_styles[0] . "' +				WHERE " . $this->db->sql_in_set('user_style', $valid_styles, true));  		}  	}  } diff --git a/phpBB/phpbb/db/migration/data/v32x/fix_user_styles.php b/phpBB/phpbb/db/migration/data/v32x/fix_user_styles.php new file mode 100644 index 0000000000..282c6bef2f --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v32x/fix_user_styles.php @@ -0,0 +1,50 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v32x; + +class fix_user_styles extends \phpbb\db\migration\migration +{ + +	static public function depends_on() +	{ +		return array( +			'\phpbb\db\migration\data\v320\v320', +		); +	} + +	public function update_data() +	{ +		return array( +			array('custom', array(array($this, 'styles_fix'))), +		); +	} + +	public function styles_fix() +	{ +		$default_style = (int) $this->config['default_style']; + +		// Get enabled styles +		$sql = 'SELECT style_id +			FROM ' . STYLES_TABLE . ' +			WHERE style_active = 1'; +		$result = $this->db->sql_query($sql); +		$enabled_styles = $result->fetch_array(); +		$this->db->sql_freeresult($result); + +		// Set the default style to users who have an invalid style +		$this->sql_query('UPDATE ' . USERS_TABLE . ' +			SET user_style = ' . (int) $default_style . ' +			WHERE ' . $this->db->sql_in_set('user_style', $enabled_styles, true)); +	} +} diff --git a/phpBB/phpbb/user.php b/phpBB/phpbb/user.php index d4097f53ee..5899dff2f5 100644 --- a/phpBB/phpbb/user.php +++ b/phpBB/phpbb/user.php @@ -278,24 +278,6 @@ class user extends \phpbb\session  			$db->sql_freeresult($result);  		} -		// User has wrong style -		if (!$this->style && $style_id == $this->data['user_style']) -		{ -			$style_id = $this->data['user_style'] = $config['default_style']; - -			$sql = 'UPDATE ' . USERS_TABLE . " -				SET user_style = $style_id -				WHERE user_id = {$this->data['user_id']}"; -			$db->sql_query($sql); - -			$sql = 'SELECT * -				FROM ' . STYLES_TABLE . " s -				WHERE s.style_id = $style_id"; -			$result = $db->sql_query($sql, 3600); -			$this->style = $db->sql_fetchrow($result); -			$db->sql_freeresult($result); -		} -  		if (!$this->style)  		{  			trigger_error('NO_STYLE_DATA', E_USER_ERROR); | 
