From 70747b96a3d985402d572f84cf1845607a31a87d Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Wed, 05 Sep 2012 08:37:35 -0400 Subject: [PATCH] - Changed compatibility of extended (old) default themes - Implemented immediate change of theme on selection - Fixed error message on incompatible theme --- interface/web/tools/interface_settings.php | 34 +++++++++++++++++++++++++++++++++- interface/web/themes/default_no_navimg/ISPC_VERSION | 2 +- interface/web/dashboard/dashboard.php | 4 ++-- interface/web/themes/default_combobox/ISPC_VERSION | 2 +- interface/web/themes/default_64_navimg/ISPC_VERSION | 2 +- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index f744f8d..daf2356 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -94,11 +94,11 @@ $info = array(); if(isset($_SESSION['show_info_msg'])) { - $info[] = array('info_msg' => $_SESSION['show_info_msg']); + $info[] = array('info_msg' => '<p>'.$_SESSION['show_info_msg'].'</p>'); unset($_SESSION['show_info_msg']); } if(isset($_SESSION['show_error_msg'])) { - $app->tpl->setloop('error', array(array('error_msg' => $_SESSION['show_error_msg']))); + $app->tpl->setloop('error', array(array('error_msg' => '<p>'.$_SESSION['show_error_msg'].'</p>'))); unset($_SESSION['show_error_msg']); } diff --git a/interface/web/themes/default_64_navimg/ISPC_VERSION b/interface/web/themes/default_64_navimg/ISPC_VERSION index 7da3c16..bb19ac3 100644 --- a/interface/web/themes/default_64_navimg/ISPC_VERSION +++ b/interface/web/themes/default_64_navimg/ISPC_VERSION @@ -1 +1 @@ -3.0.5 \ No newline at end of file +3.0.4.6 \ No newline at end of file diff --git a/interface/web/themes/default_combobox/ISPC_VERSION b/interface/web/themes/default_combobox/ISPC_VERSION index 7da3c16..bb19ac3 100644 --- a/interface/web/themes/default_combobox/ISPC_VERSION +++ b/interface/web/themes/default_combobox/ISPC_VERSION @@ -1 +1 @@ -3.0.5 \ No newline at end of file +3.0.4.6 \ No newline at end of file diff --git a/interface/web/themes/default_no_navimg/ISPC_VERSION b/interface/web/themes/default_no_navimg/ISPC_VERSION index 7da3c16..bb19ac3 100644 --- a/interface/web/themes/default_no_navimg/ISPC_VERSION +++ b/interface/web/themes/default_no_navimg/ISPC_VERSION @@ -1 +1 @@ -3.0.5 \ No newline at end of file +3.0.4.6 \ No newline at end of file diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php index 1ec67c5..0744c73 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."/ISPC_VERSION") || trim(file_get_contents($tmp_path."/ISPC_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