From 4eb8d2a054e69aba568d5435fd1420b5a9367207 Mon Sep 17 00:00:00 2001 From: cfoe <cfoe@ispconfig3> Date: Wed, 18 Jul 2012 13:45:49 -0400 Subject: [PATCH] added interface + theme options for the end user --- interface/web/tools/interface_settings.php | 108 +++++++++ interface/web/tools/lib/module.conf.php | 52 ++- interface/web/tools/templates/interface_settings.htm | 37 +++ interface/web/tools/lib/interface.d/default-v2.menu.php | 7 interface/web/tools/lib/lang/de_default-v2.lng | 5 interface/web/tools/form/default-v2_settings.tform.php | 137 +++++++++++ interface/web/tools/lib/lang/en_interface.lng | 5 interface/web/tools/templates/default-v2_settings.htm | 37 +++ interface/web/tools/lib/lang/en.lng | 1 interface/web/tools/lib/lang/de.lng | 1 interface/web/tools/lib/lang/de_interface.lng | 5 interface/web/tools/lib/lang/en_default-v2.lng | 5 interface/web/tools/default-v2_settings.php | 109 +++++++++ interface/web/tools/form/interface_settings.tform.php | 181 +++++++++++++++ 14 files changed, 673 insertions(+), 17 deletions(-) diff --git a/interface/web/tools/default-v2_settings.php b/interface/web/tools/default-v2_settings.php new file mode 100644 index 0000000..30d777f --- /dev/null +++ b/interface/web/tools/default-v2_settings.php @@ -0,0 +1,109 @@ +<?php +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/default-v2_settings.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('tools'); +$app->uses('tpl'); +//// Loading classes +//$app->uses('tpl,tform,tform_actions'); +//$app->load('tform_actions'); +// +//class page_action extends tform_actions { +// +// function onLoad() { +// 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'); +// +// $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']; +// $_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']; +// } +// } +// +// 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.'; +// +// $_SESSION['s']['user']['language'] = $_POST['language']; +// $_SESSION['s']['language'] = $_POST['language']; +// +// if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { +// $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; +// } +// } +// +// +//} +// +//$page = new page_action; +//$page->onLoad(); + +echo '<h2 class="frmTextHead">Default-v2 Settings</h2><p>No settings for this theme</p>'; +?> diff --git a/interface/web/tools/form/default-v2_settings.tform.php b/interface/web/tools/form/default-v2_settings.tform.php new file mode 100644 index 0000000..1819f85 --- /dev/null +++ b/interface/web/tools/form/default-v2_settings.tform.php @@ -0,0 +1,137 @@ +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + Form Definition + + Tabellendefinition + + Datentypen: + - INTEGER (Wandelt Ausdr�cke in Int um) + - DOUBLE + - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) + - VARCHAR (kein weiterer Format Check) + - TEXT (kein weiterer Format Check) + - DATE (Datumsformat, Timestamp Umwandlung) + + Formtype: + - TEXT (normales Textfeld) + - TEXTAREA (normales Textfeld) + - PASSWORD (Feldinhalt wird nicht angezeigt) + - SELECT (Gibt Werte als option Feld aus) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hinweis: + Das ID-Feld ist nicht bei den Table Values einzuf�gen. + + +*/ + +$form['title'] = 'Default-v2 Settings'; +$form['description'] = ''; +$form['name'] = 'default-v2'; +$form['action'] = 'default-v2_settings.php'; +$form['db_table'] = 'sys_user'; // needs to be 'sys_user_theme' +$form['db_table_idx'] = 'userid'; //?? +$form["db_history"] = "no"; +$form['tab_default'] = 'main'; +$form['list_default'] = 'index.php'; +$form['auth'] = 'no'; //? + +//* 0 = id of the user, > 0 id must match with id of current user +$form['auth_preset']['userid'] = 0; +//* 0 = default groupid of the user, > 0 id must match with groupid of current user +$form['auth_preset']['groupid'] = 0; + +//** Permissions are: r = read, i = insert, u = update, d = delete +$form['auth_preset']['perm_user'] = 'riud'; +$form['auth_preset']['perm_group'] = 'riud'; +$form['auth_preset']['perm_other'] = ''; + +//* Pick out modules +//* TODO: limit to activated modules of the user +$modules_list = array(); +$handle = @opendir(ISPC_WEB_PATH); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir(ISPC_WEB_PATH."/$file")) { + if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { + $modules_list[$file] = $file; + } + } + } +} + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir ($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + $themes_list[$file] = $file; + } + } +} + +$form['tabs']['main'] = array ( + 'title' => 'Settings', + 'width' => 80, + 'template' => 'templates/interface_settings.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + + ################################## + # ENDE Datenbankfelder + ################################## + ) +); + + +?> diff --git a/interface/web/tools/form/interface_settings.tform.php b/interface/web/tools/form/interface_settings.tform.php new file mode 100644 index 0000000..b43e1c6 --- /dev/null +++ b/interface/web/tools/form/interface_settings.tform.php @@ -0,0 +1,181 @@ +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + Form Definition + + Tabellendefinition + + Datentypen: + - INTEGER (Wandelt Ausdr�cke in Int um) + - DOUBLE + - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) + - VARCHAR (kein weiterer Format Check) + - TEXT (kein weiterer Format Check) + - DATE (Datumsformat, Timestamp Umwandlung) + + Formtype: + - TEXT (normales Textfeld) + - TEXTAREA (normales Textfeld) + - PASSWORD (Feldinhalt wird nicht angezeigt) + - SELECT (Gibt Werte als option Feld aus) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hinweis: + Das ID-Feld ist nicht bei den Table Values einzuf�gen. + + +*/ + +$form['title'] = 'Interface Settings'; +$form['description'] = ''; +$form['name'] = 'interface'; +$form['action'] = 'interface_settings.php'; +$form['db_table'] = 'sys_user'; +$form['db_table_idx'] = 'userid'; +$form["db_history"] = "no"; +$form['tab_default'] = 'main'; +$form['list_default'] = 'index.php'; +$form['auth'] = 'no'; //?? + +//* 0 = id of the user, > 0 id must match with id of current user +$form['auth_preset']['userid'] = 0; +//* 0 = default groupid of the user, > 0 id must match with groupid of current user +$form['auth_preset']['groupid'] = 0; + +//** Permissions are: r = read, i = insert, u = update, d = delete +$form['auth_preset']['perm_user'] = 'riud'; +$form['auth_preset']['perm_group'] = 'riud'; +$form['auth_preset']['perm_other'] = ''; + +//* Pick out modules +//* TODO: limit to activated modules of the user +$modules_list = array(); +$handle = @opendir(ISPC_WEB_PATH); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir(ISPC_WEB_PATH."/$file")) { + if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { + $modules_list[$file] = $file; + } + } + } +} + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir ($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + $themes_list[$file] = $file; + } + } +} + +$form['tabs']['main'] = array ( + 'title' => 'Settings', + 'width' => 80, + 'template' => 'templates/interface_settings.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + 'startmodule' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $modules_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'language' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'language_is_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z]{2}$/i', + 'errmsg'=> 'language_regex_mismatch'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $language_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '2', + 'rows' => '', + 'cols' => '' + ), + 'app_theme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'regex' => '', + 'errmsg' => '', + 'default' => 'default', + 'value' => $themes_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ) + ################################## + # ENDE Datenbankfelder + ################################## + ) +); + + +?> diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php new file mode 100644 index 0000000..f3751df --- /dev/null +++ b/interface/web/tools/interface_settings.php @@ -0,0 +1,108 @@ +<?php +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/interface_settings.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('tools'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onLoad() { + 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'); + + $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']; + $_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']; + } + } + + 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.'; + + $_SESSION['s']['user']['language'] = $_POST['language']; + $_SESSION['s']['language'] = $_POST['language']; + + if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { + $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; + } + } + + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/tools/lib/interface.d/default-v2.menu.php b/interface/web/tools/lib/interface.d/default-v2.menu.php new file mode 100644 index 0000000..6d6b0c0 --- /dev/null +++ b/interface/web/tools/lib/interface.d/default-v2.menu.php @@ -0,0 +1,7 @@ +<?php + +$items[] = array( 'title' => 'Default-v2 Theme', + 'target' => 'content', + 'link' => 'tools/default-v2_settings.php', + 'html_id' => 'default-v2_settings'); +?> diff --git a/interface/web/tools/lib/lang/de.lng b/interface/web/tools/lib/lang/de.lng index 2162baa..3c04ff1 100644 --- a/interface/web/tools/lib/lang/de.lng +++ b/interface/web/tools/lib/lang/de.lng @@ -2,6 +2,7 @@ $wb['User Settings'] = 'Benutzereinstellungen'; $wb['Settings'] = 'Einstellungen'; $wb['ISPConfig Tools'] = 'Einstellungen'; +$wb['Interface'] = 'Interface'; $wb['Password and Language'] = 'Passwort und Sprache'; $wb['ispconfig_tools_note'] = 'Dieses Modul erlaubt Ihnen, das Passwort und die Sprache zu ändern sowie einen Resync der DNS-Records anzustoßen.'; $wb['Resync'] = 'Resync'; diff --git a/interface/web/tools/lib/lang/de_default-v2.lng b/interface/web/tools/lib/lang/de_default-v2.lng new file mode 100644 index 0000000..b60be64 --- /dev/null +++ b/interface/web/tools/lib/lang/de_default-v2.lng @@ -0,0 +1,5 @@ +<?php +$wb['language_txt'] = 'Sprache'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; +?> diff --git a/interface/web/tools/lib/lang/de_interface.lng b/interface/web/tools/lib/lang/de_interface.lng new file mode 100644 index 0000000..b60be64 --- /dev/null +++ b/interface/web/tools/lib/lang/de_interface.lng @@ -0,0 +1,5 @@ +<?php +$wb['language_txt'] = 'Sprache'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; +?> diff --git a/interface/web/tools/lib/lang/en.lng b/interface/web/tools/lib/lang/en.lng index fee9301..7794543 100644 --- a/interface/web/tools/lib/lang/en.lng +++ b/interface/web/tools/lib/lang/en.lng @@ -2,6 +2,7 @@ $wb['User Settings'] = 'User Settings'; $wb['Settings'] = 'Settings'; $wb['ISPConfig Tools'] = 'ISPConfig Tools'; +$wb['Interface'] = 'Interface'; $wb['Password and Language'] = 'Password and Language'; $wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.'; $wb['Sync Tools'] = 'Sync Tools'; diff --git a/interface/web/tools/lib/lang/en_default-v2.lng b/interface/web/tools/lib/lang/en_default-v2.lng new file mode 100644 index 0000000..b702ba3 --- /dev/null +++ b/interface/web/tools/lib/lang/en_default-v2.lng @@ -0,0 +1,5 @@ +<?php +$wb["language_txt"] = 'Language'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +?> \ No newline at end of file diff --git a/interface/web/tools/lib/lang/en_interface.lng b/interface/web/tools/lib/lang/en_interface.lng new file mode 100644 index 0000000..b702ba3 --- /dev/null +++ b/interface/web/tools/lib/lang/en_interface.lng @@ -0,0 +1,5 @@ +<?php +$wb["language_txt"] = 'Language'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +?> \ No newline at end of file diff --git a/interface/web/tools/lib/module.conf.php b/interface/web/tools/lib/module.conf.php index 3190d70..d053779 100644 --- a/interface/web/tools/lib/module.conf.php +++ b/interface/web/tools/lib/module.conf.php @@ -2,8 +2,8 @@ global $conf; -$module['name'] = 'tools'; -$module['title'] = 'top_menu_tools'; +$module['name'] = 'tools'; +$module['title'] = 'top_menu_tools'; $module['template'] = 'module.tpl.htm'; $module['startpage'] = 'tools/index.php'; $module['tab_width'] = '60'; @@ -12,28 +12,46 @@ //**** Change User password $items = array(); -$items[] = array( 'title' => 'Password and Language', - 'target' => 'content', - 'link' => 'tools/user_settings.php', - 'html_id'=> 'user_settings'); +$items[] = array( 'title' => 'Password and Language', + 'target' => 'content', + 'link' => 'tools/user_settings.php', + 'html_id' => 'user_settings'); -$module['nav'][] = array( 'title' => 'User Settings', - 'open' => 1, - 'items' => $items); +$module['nav'][] = array( 'title' => 'User Settings', + 'open' => 1, + 'items' => $items); +unset($items); +//**** Change interface settings + load settings page of the activated theme +$items = array(); + +$items[] = array( 'title' => 'Interface', + 'target' => 'content', + 'link' => 'tools/interface_settings.php', + 'html_id' => 'interface_settings'); + +include_once(ISPC_WEB_PATH.'/tools/lib/interface.d/' . $_SESSION['s']['user']['app_theme'] . '.menu.php'); + +$module['nav'][] = array( 'title' => 'Interface', + 'open' => 1, + 'items' => $items); + +unset($items); + +//**** Load additional menu items $menu_dir = ISPC_WEB_PATH.'/tools/lib/menu.d'; if (is_dir($menu_dir)) { - if ($dh = opendir($menu_dir)) { - //** Go through all files in the menu dir - while (($file = readdir($dh)) !== false) { - if($file != '.' && $file != '..' && substr($file,-9,9) == '.menu.php' && $file != 'dns_resync.menu.php') { - include_once($menu_dir.'/'.$file); - } - } - } + if ($dh = opendir($menu_dir)) { + //** Go through all files in the menu dir + while (($file = readdir($dh)) !== false) { + if ($file != '.' && $file != '..' && substr($file, -9, 9) == '.menu.php' && $file != 'dns_resync.menu.php') { + include_once($menu_dir . '/' . $file); + } + } + } } ?> \ No newline at end of file diff --git a/interface/web/tools/templates/default-v2_settings.htm b/interface/web/tools/templates/default-v2_settings.htm new file mode 100644 index 0000000..045fc02 --- /dev/null +++ b/interface/web/tools/templates/default-v2_settings.htm @@ -0,0 +1,37 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_tools_interface"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> + <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> + {tmpl_var name='startmodule'} + </select> + </div> + <div class="ctrlHolder"> + <label for="language">{tmpl_var name='language_txt'}</label> + <select name="language" id="language" class="selectInput flags"> + {tmpl_var name='language'} + </select> + </div> + <!-- TODO: If user theme change is activated --> + <div class="ctrlHolder"> + <label for="app_theme">{tmpl_var name='app_theme_txt'}</label> + <select name="app_theme" id="app_theme" class="selectInput formLengthHalf"> + {tmpl_var name='app_theme'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/interface_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/tools/templates/interface_settings.htm b/interface/web/tools/templates/interface_settings.htm new file mode 100644 index 0000000..045fc02 --- /dev/null +++ b/interface/web/tools/templates/interface_settings.htm @@ -0,0 +1,37 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_tools_interface"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> + <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> + {tmpl_var name='startmodule'} + </select> + </div> + <div class="ctrlHolder"> + <label for="language">{tmpl_var name='language_txt'}</label> + <select name="language" id="language" class="selectInput flags"> + {tmpl_var name='language'} + </select> + </div> + <!-- TODO: If user theme change is activated --> + <div class="ctrlHolder"> + <label for="app_theme">{tmpl_var name='app_theme_txt'}</label> + <select name="app_theme" id="app_theme" class="selectInput formLengthHalf"> + {tmpl_var name='app_theme'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/interface_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file -- Gitblit v1.9.1