mcramer
2012-09-05 70747b96a3d985402d572f84cf1845607a31a87d
- Changed compatibility of extended (old) default themes
- Implemented immediate change of theme on selection
- Fixed error message on incompatible theme

5 files modified
44 ■■■■ changed files
interface/web/dashboard/dashboard.php 4 ●●●● patch | view | raw | blame | history
interface/web/themes/default_64_navimg/ISPC_VERSION 2 ●●● patch | view | raw | blame | history
interface/web/themes/default_combobox/ISPC_VERSION 2 ●●● patch | view | raw | blame | history
interface/web/themes/default_no_navimg/ISPC_VERSION 2 ●●● patch | view | raw | blame | history
interface/web/tools/interface_settings.php 34 ●●●●● patch | view | raw | blame | history
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']);
}
interface/web/themes/default_64_navimg/ISPC_VERSION
@@ -1 +1 @@
3.0.5
3.0.4.6
interface/web/themes/default_combobox/ISPC_VERSION
@@ -1 +1 @@
3.0.5
3.0.4.6
interface/web/themes/default_no_navimg/ISPC_VERSION
@@ -1 +1 @@
3.0.5
3.0.4.6
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();
    }
    
}