From 2f74cf27ad6fbb852df78bcccca1fb645c8a57e0 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Wed, 02 Mar 2016 07:19:30 -0500 Subject: [PATCH] Merge branch 'stable-3.1' --- interface/web/tools/interface_settings.php | 99 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 66 insertions(+), 33 deletions(-) diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php index 1ec67c5..d7a1333 100644 --- a/interface/web/tools/interface_settings.php +++ b/interface/web/tools/interface_settings.php @@ -38,8 +38,8 @@ * End Form configuration ******************************************/ -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('tools'); @@ -49,54 +49,87 @@ $app->load('tform_actions'); class page_action extends tform_actions { - + var $_theme_changed = false; + function onLoad() { - global $app, $conf, $tform_def_file; + global $app, $conf, $tform_def_file; - // Loading template classes and initialize template - if(!is_object($app->tpl)) $app->uses('tpl'); - if(!is_object($app->tform)) $app->uses('tform'); + // Loading template classes and initialize template + if(!is_object($app->tpl)) $app->uses('tpl'); + if(!is_object($app->tform)) $app->uses('tform'); - $app->tpl->newTemplate("tabbed_form.tpl.htm"); + $app->tpl->newTemplate("tabbed_form.tpl.htm"); - // Load table definition from file - $app->tform->loadFormDef($tform_def_file); - - // Importing ID - $this->id = $_SESSION['s']['user']['userid']; + // Load table definition from file + $app->tform->loadFormDef($tform_def_file); + + // Importing ID + $this->id = $_SESSION['s']['user']['userid']; $_POST['id'] = $_SESSION['s']['user']['userid']; - if(count($_POST) > 1) { - $this->dataRecord = $_POST; - $this->onSubmit(); - } else { - $this->onShow(); - } - } - - function onBeforeInsert() { - global $app, $conf; - - if(!in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; + if(count($_POST) > 1) { + $this->dataRecord = $_POST; + $this->onSubmit(); + } else { + $this->onShow(); } } - + + function onBeforeInsert() { + global $app, $conf; + + if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { + $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; + } + $this->updateSessionTheme(); + } + function onInsert() { die('No inserts allowed.'); } - + function onBeforeUpdate() { global $app, $conf; - + if($conf['demo_mode'] == true && $this->id <= 3) $app->tform->errorMessage .= 'This function is disabled in demo mode.'; - - if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { + + 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(); + } + + } $page = new page_action; -- Gitblit v1.9.1