From 57a8d902f4016b8b4e6d5f8cf866c54a4ba93f96 Mon Sep 17 00:00:00 2001 From: Crack Date: Tue, 13 Jul 2010 22:17:19 +0200 Subject: [PATCH] fix ThemeDefault and fontsize export --- libraries/Config.class.php | 29 +++++++++++++-------------- libraries/config/ConfigFile.class.php | 3 ++- libraries/user_preferences.inc.php | 1 + libraries/user_preferences.lib.php | 15 ++++++-------- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/libraries/Config.class.php b/libraries/Config.class.php index 4c415507b..c72054724 100644 --- a/libraries/Config.class.php +++ b/libraries/Config.class.php @@ -455,11 +455,8 @@ class PMA_Config return; } $config_data = $_SESSION['cache'][$cache_key]['userprefs']; - // type id 'db' or 'session' + // type is 'db' or 'session' $this->set('user_preferences', $_SESSION['cache'][$cache_key]['userprefs_type']); - if (!$config_data) { - return false; - } // backup some settings $fontsize = $this->get('fontsize'); @@ -478,10 +475,13 @@ class PMA_Config // load/save theme // theme cookie exists only if we are using non-default theme $tmanager = $_SESSION['PMA_Theme_Manager']; - if (isset($_REQUEST['set_theme'])) { - // new theme was set in common.inc.php - $this->setUserValue(null, 'ThemeDefault', $tmanager->theme->id); - } else if (!$tmanager->getThemeCookie()) { + if ($tmanager->getThemeCookie()) { + if (!isset($config_data['ThemeDefault']) + || $config_data['ThemeDefault'] != $tmanager->theme->getId()) { + // new theme was set in common.inc.php + $this->setUserValue(null, 'ThemeDefault', $tmanager->theme->getId(), 'original'); + } + } else { // no cookie - read default from settings if ($this->settings['ThemeDefault'] != $tmanager->theme && $tmanager->checkTheme($this->settings['ThemeDefault'])) { @@ -489,10 +489,9 @@ class PMA_Config $tmanager->setThemeCookie(); } } + // save new font size - // fontsize cookie exists only if we are using a non-default size - if (isset($_POST['set_fontsize']) || isset($_COOKIE['pma_fontsize'])) { - // cookie with new fontsize exists, save setting to database and remove it + if (!isset($config_data['fontsize']) || $fontsize != $config_data['fontsize']) { $this->setUserValue('pma_fontsize', 'fontsize', $fontsize, '82%'); } } @@ -876,10 +875,10 @@ class PMA_Config { $new_fontsize = ''; - if (isset($_GET['fontsize'])) { - $new_fontsize = $_GET['fontsize']; - } elseif (isset($_POST['fontsize'])) { - $new_fontsize = $_POST['fontsize']; + if (isset($_GET['set_fontsize'])) { + $new_fontsize = $_GET['set_fontsize']; + } elseif (isset($_POST['set_fontsize'])) { + $new_fontsize = $_POST['set_fontsize']; } elseif (isset($_COOKIE['pma_fontsize'])) { $new_fontsize = $_COOKIE['pma_fontsize']; } diff --git a/libraries/config/ConfigFile.class.php b/libraries/config/ConfigFile.class.php index 1f501140a..b9357ad7a 100644 --- a/libraries/config/ConfigFile.class.php +++ b/libraries/config/ConfigFile.class.php @@ -63,8 +63,9 @@ class ConfigFile // load default config values $cfg = &$this->cfg; require './libraries/config.default.php'; + $cfg['fontsize'] = '82%'; - // load additionsl config information + // load additional config information $cfg_db = &$this->cfgDb; require './libraries/config.values.php'; diff --git a/libraries/user_preferences.inc.php b/libraries/user_preferences.inc.php index ad69848d9..101f39199 100644 --- a/libraries/user_preferences.inc.php +++ b/libraries/user_preferences.inc.php @@ -58,6 +58,7 @@ if (window.parent && window.parent.frame_navigation) { $forms_all_keys = PMA_read_userprefs_fieldnames($forms); $cf = ConfigFile::getInstance(); +$cf->resetConfigData(); // start with a clean instance $cf->setAllowedKeys($forms_all_keys); $cf->updateWithGlobalConfig($GLOBALS['PMA_Config']); diff --git a/libraries/user_preferences.lib.php b/libraries/user_preferences.lib.php index 2ca0417b7..2cd958eb9 100644 --- a/libraries/user_preferences.lib.php +++ b/libraries/user_preferences.lib.php @@ -9,7 +9,7 @@ /** * Loads user preferences * - * Returns false or an array: + * Returns an array: * * config_data - path => value pairs * * mtime - last modification time * * type - 'db' (config read from pmadb) or 'session' (read from user session) @@ -21,7 +21,7 @@ * @uses PMA_getRelationsParam() * @uses PMA_sqlAddslashes() * @uses $GLOBALS['controllink'] - * @return false|array + * @return array */ function PMA_load_userprefs() { @@ -45,13 +45,9 @@ function PMA_load_userprefs() FROM ' . $query_table . ' WHERE `username` = \'' . PMA_sqlAddslashes($cfgRelation['user']) . '\''; $row = PMA_DBI_fetch_single_row($query, 'ASSOC', $GLOBALS['controllink']); - if (!$row) { - return false; - } - $config_data = unserialize($row['config_data']); return array( - 'config_data' => $config_data, - 'mtime' => $row['ts'], + 'config_data' => $row ? unserialize($row['config_data']) : array(), + 'mtime' => $row ? $row['ts'] : time(), 'type' => 'db'); } @@ -225,7 +221,8 @@ function PMA_userprefs_redirect(array $forms, array $old_settings, $file_name, $ $check_keys = array_merge($check_keys, $forms['Left_frame']['Left_frame'], $forms['Left_frame']['Left_databases']); $diff = array_intersect($check_keys, $diff_keys); - $refresh_left_frame = !empty($diff); + $refresh_left_frame = !empty($diff) + || (isset($params['refresh_left_frame']) && $params['refresh_left_frame']); // redirect $url_params = array(