From 7990f8881b085279269d35cf9dd2787b88ae1c08 Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Tue, 27 Nov 2012 14:47:43 -0500 Subject: [PATCH] Bugfix: _ispconfig_pw_crypted was ignored (stripped off in encoding method) --- interface/web/tools/interface_settings.php | 34 +++++++++++++++++++++++++++++++++- 1 files changed, 33 insertions(+), 1 deletions(-) diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php index 1ec67c5..0c17ac9 100644 --- a/interface/web/tools/interface_settings.php +++ b/interface/web/tools/interface_settings.php @@ -49,7 +49,8 @@ $app->load('tform_actions'); class page_action extends tform_actions { - + var $_theme_changed = false; + function onLoad() { global $app, $conf, $tform_def_file; @@ -80,6 +81,7 @@ if(!in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } + $this->updateSessionTheme(); } function onInsert() { @@ -94,8 +96,38 @@ if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } + $this->updateSessionTheme(); } + + function updateSessionTheme() { + global $app, $conf; + + if($this->dataRecord['app_theme'] != 'default') { + $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme']; + if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) { + // fall back to default theme if this one is not compatible with current ispc version + $this->dataRecord['app_theme'] = 'default'; + } + } + if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true; + $_SESSION['s']['theme'] = $this->dataRecord['app_theme']; + $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme']; + $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme']; + } + function onAfterInsert() { + $this->onAfterUpdate(); + } + function onAfterUpdate() { + if($this->_theme_changed == true) { + // not the best way, but it works + header('Content-Type: text/html'); + print '<script type="text/javascript">document.location.reload();</script>'; + exit; + } + else parent::onShow(); + } + } -- Gitblit v1.9.1