aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/user.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2019-10-07 21:31:47 +0200
committerMarc Alexander <admin@m-a-styles.de>2019-10-07 21:31:47 +0200
commit6f48b3c044a5339bc019f355db490e1a53b51fdc (patch)
tree55bd7a1d388985e6cc8eceb28fbb17b955deda24 /phpBB/phpbb/user.php
parentb80cbd0e7dbe5fac29338ef1f2b88d29fef60dc2 (diff)
parentc75c13e5554652927a8aa57bd3b9f3902f57b429 (diff)
downloadforums-6f48b3c044a5339bc019f355db490e1a53b51fdc.tar
forums-6f48b3c044a5339bc019f355db490e1a53b51fdc.tar.gz
forums-6f48b3c044a5339bc019f355db490e1a53b51fdc.tar.bz2
forums-6f48b3c044a5339bc019f355db490e1a53b51fdc.tar.xz
forums-6f48b3c044a5339bc019f355db490e1a53b51fdc.zip
Merge branch '3.2.x' into 3.3.x
Diffstat (limited to 'phpBB/phpbb/user.php')
-rw-r--r--phpBB/phpbb/user.php36
1 files changed, 35 insertions, 1 deletions
diff --git a/phpBB/phpbb/user.php b/phpBB/phpbb/user.php
index 5a06becb52..21d156e060 100644
--- a/phpBB/phpbb/user.php
+++ b/phpBB/phpbb/user.php
@@ -281,9 +281,43 @@ class user extends \phpbb\session
$db->sql_freeresult($result);
}
+ // Fallback to board's default style
if (!$this->style)
{
- trigger_error('NO_STYLE_DATA', E_USER_ERROR);
+ // Verify default style exists in the database
+ $sql = 'SELECT style_id
+ FROM ' . STYLES_TABLE . '
+ WHERE style_id = ' . (int) $config['default_style'];
+ $result = $db->sql_query($sql);
+ $style_id = (int) $db->sql_fetchfield('style_id');
+ $db->sql_freeresult($result);
+
+ if ($style_id > 0)
+ {
+ $db->sql_transaction('begin');
+
+ // Update $user row
+ $sql = 'SELECT *
+ FROM ' . STYLES_TABLE . '
+ WHERE style_id = ' . (int) $config['default_style'];
+ $result = $db->sql_query($sql);
+ $this->style = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ // Update user style preference
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET user_style = ' . (int) $style_id . '
+ WHERE user_id = ' . (int) $this->data['user_id'];
+ $db->sql_query($sql);
+
+ $db->sql_transaction('commit');
+ }
+ }
+
+ // This should never happen
+ if (!$this->style)
+ {
+ trigger_error($this->language->lang('NO_STYLE_DATA', $this->data['user_style'], $this->data['user_id']), E_USER_ERROR);
}
// Now parse the cfg file and cache it