3b42c9b4221d1784a229a592180d68abd75491e7
[acontent.git] / docs / system / index.php
1 <?php
2 /************************************************************************/
3 /* AContent                                                             */
4 /************************************************************************/
5 /* Copyright (c) 2010                                                   */
6 /* Inclusive Design Institute                                           */
7 /*                                                                      */
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 /************************************************************************/
12
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');
18
19 // handle submit
20 if (isset($_POST['cancel'])) {
21         $msg->addFeedback('CANCELLED');
22         header('Location: index.php');
23         exit;
24 } else if (isset($_POST['submit']) || isset($_POST['factory_default'])) {
25         if (isset($_POST['submit']))
26         {
27                 $missing_fields = array();
28         
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;
37         
38                 //check that all values have been set   
39                 if (!$_POST['site_name']) {
40                         $missing_fields[] = _AT('site_name');
41                 }
42         
43                 /* email check */
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');        
48                 }
49         
50                 if ($missing_fields) {
51                         $missing_fields = implode(', ', $missing_fields);
52                         $msg->addError(array('EMPTY_FIELDS', $missing_fields));
53                 }
54
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'];
63                 }
64                 
65                 // set $_config['pref_defaults']
66                 $pref_defaults['PREF_THEME'] = $addslashes($_POST['theme']);
67                 $_config['pref_defaults'] = serialize($pref_defaults);
68         }
69         else
70         {
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'];
78         }
79                 
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);
86                         } else {
87                                 $configDAO->Delete($name);
88                         }
89                 }
90
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;
96                 
97                 Utility::assign_session_prefs($pref_defaults);
98                 
99                 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
100
101                 header('Location: '.$_SERVER['PHP_SELF']);
102                 exit;
103         }
104 }
105 // end of handle submit
106
107 /*****************************/
108 /* template starts down here */
109
110 // get all enabled themes
111 $themesDAO = new ThemesDAO();
112 $theme_rows = $themesDAO->getEnabledTheme();
113 $savant->assign('enabled_themes', $theme_rows);
114
115 $savant->assign('title', _AT("system_settings"));
116 $savant->assign('config', $_config);
117 $savant->assign('languageManager', $languageManager);
118
119 $savant->display('system/index.tmpl.php');
120
121 ?>