2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2010 */
6 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
13 define('TR_INCLUDE_PATH', '../include/');
14 include_once(TR_INCLUDE_PATH.'vitals.inc.php');
15 include_once(TR_INCLUDE_PATH.'classes/DAO/ConfigDAO.class.php');
16 include_once(TR_INCLUDE_PATH.'classes/DAO/ThemesDAO.class.php');
17 include_once(TR_INCLUDE_PATH.'classes/Utility.class.php');
20 if (isset($_POST['cancel'])) {
21 $msg->addFeedback('CANCELLED');
22 header('Location: index.php');
24 } else if (isset($_POST['submit']) || isset($_POST['factory_default'])) {
25 if (isset($_POST['submit']))
27 $missing_fields = array();
29 $_POST['site_name'] = trim($_POST['site_name']);
30 $_POST['contact_email'] = trim($_POST['contact_email']);
31 $_POST['default_language'] = trim($_POST['default_language']);
32 $_POST['max_file_size'] = intval($_POST['max_file_size']);
33 $_POST['max_file_size'] = max(0, $_POST['max_file_size']);
34 $_POST['illegal_extentions'] = str_replace(array(' ', ' '), array(' ','|'), $_POST['illegal_extentions']);
35 $_POST['latex_server'] = (trim($_POST['latex_server'])==''?$_config['latex_server']:trim($_POST['latex_server']));
36 $_POST['use_captcha'] = $_POST['use_captcha'] ? 1 : 0;
38 //check that all values have been set
39 if (!$_POST['site_name']) {
40 $missing_fields[] = _AT('site_name');
44 if (!$_POST['contact_email']) {
45 $missing_fields[] = _AT('contact_email');
46 } else if (!preg_match("/^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,6}$/", $_POST['contact_email'])) {
47 $msg->addError('EMAIL_INVALID');
50 if ($missing_fields) {
51 $missing_fields = implode(', ', $missing_fields);
52 $msg->addError(array('EMPTY_FIELDS', $missing_fields));
55 if (!$msg->containsErrors()) {
56 $_config['site_name'] = $addslashes($_POST['site_name']);
57 $_config['contact_email'] = $addslashes($_POST['contact_email']);
58 $_config['default_language'] = $_SESSION['lang'] = $addslashes($_POST['default_language']);
59 $_config['max_file_size'] = $_POST['max_file_size'];
60 $_config['illegal_extentions'] = $addslashes($_POST['illegal_extentions']);
61 $_config['latex_server'] = $addslashes($_POST['latex_server']);
62 $_config['use_captcha'] = $_POST['use_captcha'];
65 // set $_config['pref_defaults']
66 $pref_defaults['PREF_THEME'] = $addslashes($_POST['theme']);
67 $_config['pref_defaults'] = serialize($pref_defaults);
71 // don't reset 'site name' and 'contact email'
72 $_config['default_language'] = $_config_defaults['default_language'];
73 $_config['max_file_size'] = $_config_defaults['max_file_size'];
74 $_config['illegal_extentions'] = $_config_defaults['illegal_extentions'];
75 $_config['latex_server'] = $_config_defaults['latex_server'];
76 $_config['use_captcha'] = $_config_defaults['use_captcha'];
77 $_config['pref_defaults'] = $_config_defaults['pref_defaults'];
80 if (!$msg->containsErrors()) {
81 $configDAO = new ConfigDAO();
82 foreach ($_config as $name => $value) {
83 // the isset() is needed to avoid overridding settings that don't get set here (ie. modules)
84 if (stripslashes($value) != $_config_defaults[$name]) {
85 $configDAO->Replace($name, $value);
87 $configDAO->Delete($name);
91 // set $_config['pref_defaults'] into session variable
92 $pref_defaults = unserialize($_config['pref_defaults']);
93 if (is_array($pref_defaults))
94 foreach ($pref_defaults as $name => $value)
95 $pref_defaults[$name] = $value;
97 Utility::assign_session_prefs($pref_defaults);
99 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
101 header('Location: '.$_SERVER['PHP_SELF']);
105 // end of handle submit
107 /*****************************/
108 /* template starts down here */
110 // get all enabled themes
111 $themesDAO = new ThemesDAO();
112 $theme_rows = $themesDAO->getEnabledTheme();
113 $savant->assign('enabled_themes', $theme_rows);
115 $savant->assign('title', _AT("system_settings"));
116 $savant->assign('config', $_config);
117 $savant->assign('languageManager', $languageManager);
119 $savant->display('system/index.tmpl.php');