PageRenderTime 46ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/NukeViet3.3/admin/modules/settings/system.php

http://nuke-viet.googlecode.com/
PHP | 286 lines | 239 code | 40 blank | 7 comment | 39 complexity | 1dd42c5bb1dca3201be518ac331b69cc MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1, GPL-2.0
  1. <?php
  2. /**
  3. * @Project NUKEVIET 3.0
  4. * @Author VINADES.,JSC (contact@vinades.vn)
  5. * @Copyright (C) 2010 VINADES.,JSC. All rights reserved
  6. * @Createdate 2-2-2010 12:55
  7. */
  8. if (!defined('NV_IS_FILE_SETTINGS'))
  9. die('Stop!!!');
  10. $page_title = $lang_module['global_config'];
  11. $adminThemes = array('');
  12. $adminThemes = array_merge($adminThemes, nv_scandir(NV_ROOTDIR . "/themes", $global_config['check_theme_admin']));
  13. unset($adminThemes[0]);
  14. $closed_site_Modes = array('0' => $lang_module['closed_site_0'], '1' => $lang_module['closed_site_1'], '2' => $lang_module['closed_site_2'], '3' => $lang_module['closed_site_3']);
  15. $optActive_Modes = array('0' => $lang_module['optActive_no'], '1' => $lang_module['optActive_all'], '2' => $lang_module['optActive_site'], '3' => $lang_module['optActive_admin']);
  16. $admin_theme = (isset($global_config['admin_theme']) and !empty($global_config['admin_theme']) and in_array($global_config['admin_theme'], $adminThemes)) ? $global_config['admin_theme'] : "admin_default";
  17. $submit = $nv_Request->get_string('submit', 'post');
  18. $errormess = "";
  19. $array_config_global = $global_config;
  20. $allow_sitelangs = array();
  21. foreach ($global_config['allow_sitelangs'] as $lang_i)
  22. {
  23. if (file_exists(NV_ROOTDIR . "/language/" . $lang_i . "/global.php"))
  24. {
  25. $allow_sitelangs[] = $lang_i;
  26. }
  27. }
  28. $proxy_blocker_array = array(//
  29. 0 => $lang_module['proxy_blocker_0'], //
  30. 1 => $lang_module['proxy_blocker_1'], //
  31. 2 => $lang_module['proxy_blocker_2'], //
  32. 3 => $lang_module['proxy_blocker_3']);
  33. //
  34. if ($submit)
  35. {
  36. $array_config_global = array();
  37. $admin_theme = $nv_Request->get_string('admin_theme', 'post');
  38. if ($admin_theme and in_array($admin_theme, $adminThemes))
  39. {
  40. $array_config_global['admin_theme'] = $admin_theme;
  41. }
  42. $closed_site = $nv_Request->get_int('closed_site', 'post');
  43. if (isset($closed_site_Modes[$closed_site]))
  44. {
  45. $array_config_global['closed_site'] = $closed_site;
  46. }
  47. $array_config_global['gfx_chk'] = $nv_Request->get_int('gfx_chk', 'post');
  48. $array_config_global['site_email'] = filter_text_input('site_email', 'post', '', 1, 255);
  49. if (nv_check_valid_email($array_config_global['site_email']) != '')
  50. {
  51. $array_config_global['site_email'] = $global_config['site_email'];
  52. }
  53. $array_config_global['error_send_email'] = filter_text_input('error_send_email', 'post', '', 1, 255);
  54. if (nv_check_valid_email($array_config_global['error_send_email']) != '')
  55. {
  56. $array_config_global['error_send_email'] = $global_config['error_send_email'];
  57. }
  58. $array_config_global['site_phone'] = filter_text_input('site_phone', 'post', '', 1, 255);
  59. $array_config_global['site_lang'] = filter_text_input('site_lang', 'post', $global_config['site_lang'], 1, 255);
  60. if (!in_array($array_config_global['site_lang'], $allow_sitelangs))
  61. {
  62. $array_config_global['site_lang'] = 'vi';
  63. }
  64. $array_config_global['site_timezone'] = filter_text_input('site_timezone', 'post', '', 1, 255);
  65. $array_config_global['date_pattern'] = filter_text_input('date_pattern', 'post', '', 1, 255);
  66. $array_config_global['time_pattern'] = filter_text_input('time_pattern', 'post', '', 1, 255);
  67. $array_config_global['my_domains'] = filter_text_input('my_domains', 'post', '', 1, 255);
  68. $my_domains = array(NV_SERVER_NAME);
  69. if (!empty($array_config_global['my_domains']))
  70. {
  71. $array_config_global['my_domains'] = array_map("trim", explode(",", $array_config_global['my_domains']));
  72. foreach ($array_config_global['my_domains'] as $dm)
  73. {
  74. if (!empty($dm))
  75. {
  76. $dm2 = (!preg_match("/^(http|https|ftp|gopher)\:\/\//", $dm)) ? "http://" . $dm : $dm;
  77. if (nv_is_url($dm2) or $dm == "localhost")
  78. {
  79. $my_domains[] = $dm;
  80. }
  81. }
  82. }
  83. }
  84. $my_domains = array_unique($my_domains);
  85. $array_config_global['my_domains'] = implode(",", $my_domains);
  86. $array_config_global['cookie_prefix'] = filter_text_input('cookie_prefix', 'post', '', 1, 255);
  87. $array_config_global['session_prefix'] = filter_text_input('session_prefix', 'post', '', 1, 255);
  88. $array_config_global['googleAnalyticsID'] = filter_text_input('googleAnalyticsID', 'post', '', 1, 20);
  89. if (!preg_match('/^UA-\d{4,}-\d+$/', $array_config_global['googleAnalyticsID']))
  90. {
  91. $array_config_global['googleAnalyticsID'] = "";
  92. }
  93. $array_config_global['googleAnalyticsSetDomainName'] = $nv_Request->get_int('googleAnalyticsSetDomainName', 'post');
  94. $array_config_global['gzip_method'] = $nv_Request->get_int('gzip_method', 'post');
  95. $array_config_global['online_upd'] = $nv_Request->get_int('online_upd', 'post');
  96. $array_config_global['statistic'] = $nv_Request->get_int('statistic', 'post');
  97. $array_config_global['lang_multi'] = $nv_Request->get_int('lang_multi', 'post');
  98. $array_config_global['optActive'] = $nv_Request->get_int('optActive', 'post');
  99. $array_config_global['proxy_blocker'] = $nv_Request->get_int('proxy_blocker', 'post');
  100. $array_config_global['getloadavg'] = $nv_Request->get_int('getloadavg', 'post');
  101. if (!isset($proxy_blocker_array[$array_config_global['proxy_blocker']]))
  102. {
  103. $array_config_global['proxy_blocker'] = 0;
  104. }
  105. $array_config_global['str_referer_blocker'] = $nv_Request->get_int('str_referer_blocker', 'post');
  106. $array_config_global['is_url_rewrite'] = $nv_Request->get_int('is_url_rewrite', 'post', 0);
  107. if ($array_config_global['lang_multi'] == 0)
  108. {
  109. $array_config_global['rewrite_optional'] = $nv_Request->get_int('rewrite_optional', 'post', 0);
  110. $array_config_global['lang_geo'] = 0;
  111. }
  112. else
  113. {
  114. $array_config_global['rewrite_optional'] = 0;
  115. $array_config_global['lang_geo'] = $nv_Request->get_int('lang_geo', 'post', 0);
  116. }
  117. foreach ($array_config_global as $config_name => $config_value)
  118. {
  119. $db->sql_query("REPLACE INTO `" . NV_CONFIG_GLOBALTABLE . "` (`lang`, `module`, `config_name`, `config_value`) VALUES ('sys', 'global', '" . mysql_real_escape_string($config_name) . "', " . $db->dbescape($config_value) . ")");
  120. }
  121. nv_save_file_config_global();
  122. if (empty($errormess))
  123. {
  124. Header('Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op . '&rand=' . nv_genpass());
  125. exit();
  126. }
  127. else
  128. {
  129. $sql = $db->constructQuery("SELECT `module`, `config_name`, `config_value` FROM `" . NV_CONFIG_GLOBALTABLE . "`
  130. WHERE `lang`='" . NV_LANG_DATA . "' ORDER BY `module` ASC", NV_LANG_DATA);
  131. $result = $db->sql_query($sql);
  132. while (list($c_module, $c_config_name, $c_config_value) = $db->sql_fetchrow($result))
  133. {
  134. if ($c_module == "global")
  135. {
  136. $global_config[$c_config_name] = $c_config_value;
  137. }
  138. else
  139. {
  140. $module_config[$c_module][$c_config_name] = $c_config_value;
  141. }
  142. }
  143. }
  144. }
  145. $captcha_array = array(//
  146. 0 => $lang_module['captcha_0'], //
  147. 1 => $lang_module['captcha_1'], //
  148. 2 => $lang_module['captcha_2'], //
  149. 3 => $lang_module['captcha_3'], //
  150. 4 => $lang_module['captcha_4'], //
  151. 5 => $lang_module['captcha_5'], //
  152. 6 => $lang_module['captcha_6'], //
  153. 7 => $lang_module['captcha_7'] //
  154. );
  155. $array_config_global['gzip_method'] = ($global_config['gzip_method']) ? ' checked="checked"' : '';
  156. $array_config_global['online_upd'] = ($global_config['online_upd']) ? ' checked="checked"' : '';
  157. $array_config_global['statistic'] = ($global_config['statistic']) ? ' checked="checked"' : '';
  158. $array_config_global['lang_multi'] = ($global_config['lang_multi']) ? ' checked="checked"' : '';
  159. $array_config_global['str_referer_blocker'] = ($global_config['str_referer_blocker']) ? ' checked="checked"' : '';
  160. $array_config_global['getloadavg'] = ($global_config['getloadavg']) ? ' checked="checked"' : '';
  161. $array_config_global['my_domains'] = implode(",", $global_config['my_domains']);
  162. $xtpl = new XTemplate("system.tpl", NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file . "");
  163. $xtpl->assign('LANG', $lang_module);
  164. $xtpl->assign('DATA', $array_config_global);
  165. foreach ($adminThemes as $name)
  166. {
  167. $xtpl->assign('THEME_NAME', $name);
  168. $xtpl->assign('THEME_SELECTED', ($name == $admin_theme ? " selected=\"selected\"" : ""));
  169. $xtpl->parse('main.admin_theme');
  170. }
  171. foreach ($closed_site_Modes as $value => $name)
  172. {
  173. $xtpl->assign('MODE_VALUE', $value);
  174. $xtpl->assign('MODE_NAME', $name);
  175. $xtpl->assign('MODE_SELECTED', ($value == $global_config['closed_site'] ? " selected=\"selected\"" : ""));
  176. $xtpl->parse('main.closed_site_mode');
  177. }
  178. foreach ($captcha_array as $gfx_chk_i => $gfx_chk_lang)
  179. {
  180. $xtpl->assign('GFX_CHK_SELECTED', ($global_config['gfx_chk'] == $gfx_chk_i) ? ' selected="selected"' : '');
  181. $xtpl->assign('GFX_CHK_VALUE', $gfx_chk_i);
  182. $xtpl->assign('GFX_CHK_TITLE', $gfx_chk_lang);
  183. $xtpl->parse('main.opcaptcha');
  184. }
  185. foreach ($proxy_blocker_array as $proxy_blocker_i => $proxy_blocker_v)
  186. {
  187. $xtpl->assign('PROXYSELECTED', ($global_config['proxy_blocker'] == $proxy_blocker_i) ? ' selected="selected"' : '');
  188. $xtpl->assign('PROXYOP', $proxy_blocker_i);
  189. $xtpl->assign('PROXYVALUE', $proxy_blocker_v);
  190. $xtpl->parse('main.proxy_blocker');
  191. }
  192. $xtpl->assign('CHECKED1', ($global_config['is_url_rewrite'] == 1) ? ' checked ' : '');
  193. if ($global_config['lang_multi'] == 0)
  194. {
  195. $xtpl->assign('CHECKED2', ($global_config['rewrite_optional'] == 1) ? ' checked ' : '');
  196. $xtpl->parse('main.rewrite_optional');
  197. }
  198. if ($global_config['lang_multi'] and sizeof($global_config['allow_sitelangs']) > 1)
  199. {
  200. $xtpl->assign('CONFIG_LANG_GEO', NV_BASE_ADMINURL . 'index.php?' . NV_NAME_VARIABLE . '=language&op&' . NV_OP_VARIABLE . '=countries');
  201. $xtpl->assign('CHECKED_LANG_GEO', ($global_config['lang_geo'] == 1) ? ' checked ' : '');
  202. foreach ($allow_sitelangs as $lang_i)
  203. {
  204. $xtpl->assign('LANGOP', $lang_i);
  205. $xtpl->assign('SELECTED', ($lang_i == $global_config['site_lang']) ? "selected='selected'" : "");
  206. $xtpl->assign('LANGVALUE', $language_array[$lang_i]['name']);
  207. $xtpl->parse('main.lang_multi.site_lang_option');
  208. }
  209. $xtpl->parse('main.lang_multi');
  210. }
  211. foreach ($optActive_Modes as $key => $value)
  212. {
  213. $xtpl->assign('OPTACTIVE_OP', $key);
  214. $xtpl->assign('OPTACTIVE_SELECTED', ($key == $global_config['optActive']) ? "selected='selected'" : "");
  215. $xtpl->assign('OPTACTIVE_TEXT', $value);
  216. $xtpl->parse('main.optActive');
  217. }
  218. $timezone_array = array_keys(nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/timezone.ini', true));
  219. foreach ($timezone_array as $site_timezone_i)
  220. {
  221. $xtpl->assign('TIMEZONEOP', $site_timezone_i);
  222. $xtpl->assign('TIMEZONESELECTED', ($site_timezone_i == $global_config['site_timezone']) ? "selected='selected'" : "");
  223. $xtpl->assign('TIMEZONELANGVALUE', $site_timezone_i);
  224. $xtpl->parse('main.opsite_timezone');
  225. }
  226. for ($i = 0; $i < 3; ++$i)
  227. {
  228. $xtpl->assign('GOOGLEANALYTICSSETDOMAINNAME_SELECTED', ($global_config['googleAnalyticsSetDomainName'] == $i) ? ' selected="selected"' : '');
  229. $xtpl->assign('GOOGLEANALYTICSSETDOMAINNAME_VALUE', $i);
  230. $xtpl->assign('GOOGLEANALYTICSSETDOMAINNAME_TITLE', $lang_module['googleAnalyticsSetDomainName_' . $i]);
  231. $xtpl->parse('main.googleAnalyticsSetDomainName');
  232. }
  233. $xtpl->parse('main');
  234. $content = "";
  235. if ($errormess != "")
  236. {
  237. $content .= "<div class=\"quote\" style=\"width:780px;\">\n";
  238. $content .= "<blockquote class=\"error\"><span>" . $errormess . "</span></blockquote>\n";
  239. $content .= "</div>\n";
  240. $content .= "<div class=\"clear\"></div>\n";
  241. }
  242. $content .= $xtpl->text('main');
  243. include (NV_ROOTDIR . "/includes/header.php");
  244. echo nv_admin_theme($content);
  245. include (NV_ROOTDIR . "/includes/footer.php");
  246. ?>