PageRenderTime 48ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/NukeViet3.3/index.php

http://nuke-viet.googlecode.com/
PHP | 263 lines | 215 code | 24 blank | 24 comment | 45 complexity | 282ddbe766f2d0fd32fe62fc2ec4c341 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 31/05/2010, 00:36
  7. */
  8. define('NV_SYSTEM', true);
  9. require (str_replace(DIRECTORY_SEPARATOR, '/', dirname(__file__)) . '/mainfile.php');
  10. require (NV_ROOTDIR . "/includes/core/user_functions.php");
  11. //Google Sitemap
  12. if ($nv_Request->isset_request(NV_NAME_VARIABLE, 'get') and $nv_Request->get_string(NV_NAME_VARIABLE, 'get') == "SitemapIndex")
  13. {
  14. nv_xmlSitemapIndex_generate();
  15. die();
  16. }
  17. //Check user
  18. if (defined('NV_IS_USER'))
  19. trigger_error('Hacking attempt', 256);
  20. require (NV_ROOTDIR . "/includes/core/is_user.php");
  21. //Cap nhat trang thai online
  22. if ($global_config['online_upd'] and !defined('NV_IS_AJAX') and !defined('NV_IS_MY_USER_AGENT'))
  23. {
  24. require (NV_ROOTDIR . "/includes/core/online.php");
  25. }
  26. //Thong ke
  27. if ($global_config['statistic'] and !defined('NV_IS_AJAX') and !defined('NV_IS_MY_USER_AGENT'))
  28. {
  29. if (!$nv_Request->isset_request('statistic_' . NV_LANG_DATA, 'session'))
  30. {
  31. require (NV_ROOTDIR . "/includes/core/stat.php");
  32. }
  33. }
  34. //Referer + Gqueries
  35. if ($client_info['is_myreferer'] === 0 and !defined('NV_IS_MY_USER_AGENT'))
  36. {
  37. require (NV_ROOTDIR . "/includes/core/referer.php");
  38. }
  39. if (!isset($global_config['site_home_module']) or empty($global_config['site_home_module']))
  40. $global_config['site_home_module'] = "news";
  41. if ($nv_Request->isset_request(NV_NAME_VARIABLE, 'get') || $nv_Request->isset_request(NV_NAME_VARIABLE, 'post'))
  42. {
  43. $home = 0;
  44. $module_name = $nv_Request->get_string(NV_NAME_VARIABLE, 'post,get');
  45. }
  46. else
  47. {
  48. $home = 1;
  49. $module_name = $global_config['site_home_module'];
  50. }
  51. if (preg_match($global_config['check_module'], $module_name))
  52. {
  53. $site_mods = nv_site_mods();
  54. //IMG thong ke truy cap + online
  55. if ($global_config['statistic'] and isset($site_mods['statistics']) and $nv_Request->get_string('second', 'get') == "statimg")
  56. {
  57. include_once (NV_ROOTDIR . "/includes/core/statimg.php");
  58. }
  59. if (isset($site_mods[$module_name]))
  60. {
  61. $module_info = $site_mods[$module_name];
  62. $module_file = $module_info['module_file'];
  63. $module_data = $module_info['module_data'];
  64. $include_file = NV_ROOTDIR . "/modules/" . $module_file . "/funcs/main.php";
  65. if (file_exists($include_file) and filesize($include_file) != 0)
  66. {
  67. $array_op = array();
  68. $op = $nv_Request->get_string( NV_OP_VARIABLE, 'post,get', 'main' );
  69. if ( empty( $op ) ) $op = "main";
  70. if ( ! preg_match( "/^[a-z0-9\-\/]+$/i", $op ) )
  71. {
  72. Header( "Location: " . nv_url_rewrite( NV_BASE_SITEURL . "index.php?" . NV_LANG_VARIABLE . "=" . NV_LANG_DATA . "&" . NV_NAME_VARIABLE . "=" . $module_name, true ) );
  73. die();
  74. }
  75. if ( $op != "main" and ! isset( $module_info['funcs'][$op] ) )
  76. {
  77. $array_op = explode( "/", $op );
  78. $op = ( isset( $module_info['funcs'][$array_op[0]] ) ) ? $array_op[0] : 'main';
  79. }
  80. //Xac dinh quyen dieu hanh module
  81. if ($module_info['is_modadmin'])
  82. {
  83. define('NV_IS_MODADMIN', true);
  84. }
  85. if (defined('NV_IS_SPADMIN'))
  86. {
  87. $drag_block = $nv_Request->get_int('drag_block', 'session', 0);
  88. if ($nv_Request->isset_request('drag_block', 'get'))
  89. {
  90. $drag_block = $nv_Request->get_int('drag_block', 'get', 0);
  91. $nv_Request->set_Session('drag_block', $drag_block);
  92. }
  93. if ($drag_block)
  94. {
  95. define('NV_IS_DRAG_BLOCK', true);
  96. $adm_data_lang = $nv_Request->get_string('data_lang', 'cookie');
  97. if ($adm_data_lang != NV_LANG_DATA)
  98. {
  99. $nv_Request->set_Cookie('int_lang', NV_LANG_DATA, NV_LIVE_COOKIE_TIME);
  100. $nv_Request->set_Cookie('data_lang', NV_LANG_DATA, NV_LIVE_COOKIE_TIME);
  101. }
  102. }
  103. }
  104. //Ket noi ngon ngu cua module
  105. if (file_exists(NV_ROOTDIR . "/modules/" . $module_file . "/language/" . NV_LANG_INTERFACE . ".php"))
  106. {
  107. require (NV_ROOTDIR . "/modules/" . $module_file . "/language/" . NV_LANG_INTERFACE . ".php");
  108. }
  109. elseif (file_exists(NV_ROOTDIR . "/modules/" . $module_file . "/language/en.php"))
  110. {
  111. require (NV_ROOTDIR . "/modules/" . $module_file . "/language/en.php");
  112. }
  113. //Ket noi giao dien chung
  114. $is_mobile = false;
  115. if (!empty($client_info['is_mobile']) and !empty($module_info['mobile']) and file_exists(NV_ROOTDIR . "/themes/" . $module_info['mobile'] . "/theme.php"))
  116. {
  117. $global_config['module_theme'] = $module_info['mobile'];
  118. $is_mobile = true;
  119. }
  120. elseif (!empty($module_info['theme']) and file_exists(NV_ROOTDIR . "/themes/" . $module_info['theme'] . "/theme.php"))
  121. {
  122. $global_config['module_theme'] = $module_info['theme'];
  123. }
  124. elseif (!empty($global_config['site_theme']) and file_exists(NV_ROOTDIR . "/themes/" . $global_config['site_theme'] . "/theme.php"))
  125. {
  126. $global_config['module_theme'] = $global_config['site_theme'];
  127. }
  128. elseif (file_exists(NV_ROOTDIR . "/themes/default/theme.php"))
  129. {
  130. $global_config['module_theme'] = "default";
  131. }
  132. else
  133. {
  134. trigger_error("Error! Does not exist themes default", 256);
  135. }
  136. //Xac dinh layout funcs cua module
  137. $sql = "SELECT f.func_name, t.layout FROM `" . NV_MODFUNCS_TABLE . "` AS f INNER JOIN `" . NV_PREFIXLANG . "_modthemes` AS t ON f.func_id=t.func_id WHERE f.in_module = '" . $module_name . "' AND t.theme='" . $global_config['module_theme'] . "'";
  138. $cache_file = NV_LANG_DATA . "_modules_" . md5($sql) . "_" . NV_CACHE_PREFIX . ".cache";
  139. if (($cache = nv_get_cache($cache_file)) != false)
  140. {
  141. $module_info['layout_funcs'] = unserialize($cache);
  142. }
  143. else
  144. {
  145. $module_info['layout_funcs'] = array();
  146. $result = $db->sql_query($sql);
  147. while ($row = $db->sql_fetch_assoc($result))
  148. {
  149. $module_info['layout_funcs'][$row['func_name']] = $row['layout'];
  150. }
  151. $db->sql_freeresult($result);
  152. $cache = serialize($module_info['layout_funcs']);
  153. nv_set_cache($cache_file, $cache);
  154. }
  155. require (NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/theme.php");
  156. //ket noi ngon ngu theo theme
  157. if (file_exists(NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/language/" . NV_LANG_INTERFACE . ".php"))
  158. {
  159. require (NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/language/" . NV_LANG_INTERFACE . ".php");
  160. }
  161. elseif (file_exists(NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/language/en.php"))
  162. {
  163. require (NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/language/en.php");
  164. }
  165. //Ket noi voi file functions.php, file chua cac function dung chung cho ca module
  166. if (file_exists(NV_ROOTDIR . "/modules/" . $module_file . "/functions.php"))
  167. {
  168. require (NV_ROOTDIR . "/modules/" . $module_file . "/functions.php");
  169. }
  170. //Xac dinh template module
  171. $module_info['template'] = $global_config['module_theme'];
  172. if (!file_exists(NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file))
  173. {
  174. if (file_exists(NV_ROOTDIR . "/themes/default/modules/" . $module_file))
  175. {
  176. $module_info['template'] = "default";
  177. }
  178. }
  179. if (file_exists(NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file . "/theme.php"))
  180. {
  181. require (NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file . "/theme.php");
  182. }
  183. elseif (file_exists(NV_ROOTDIR . "/modules/" . $module_file . "/theme.php"))
  184. {
  185. require (NV_ROOTDIR . "/modules/" . $module_file . "/theme.php");
  186. }
  187. if (!defined('NV_IS_AJAX'))
  188. {
  189. if ($module_info['submenu'])
  190. nv_create_submenu();
  191. }
  192. //Ket noi voi cac op cua module de thuc hien
  193. if ($is_mobile and file_exists(NV_ROOTDIR . "/modules/" . $module_file . "/mobile/" . $op . ".php"))
  194. {
  195. require (NV_ROOTDIR . "/modules/" . $module_file . "/mobile/" . $op . ".php");
  196. }
  197. else
  198. {
  199. require (NV_ROOTDIR . "/modules/" . $module_file . "/funcs/" . $op . ".php");
  200. }
  201. exit();
  202. }
  203. elseif (isset($module_info['funcs']['main']))
  204. {
  205. $db->sql_query("UPDATE `" . NV_MODULES_TABLE . "` SET `act`=2 WHERE `title`=" . $db->dbescape($module_name));
  206. nv_del_moduleCache('modules');
  207. }
  208. }
  209. else
  210. {
  211. $sql = "SELECT * FROM `" . NV_MODFUNCS_TABLE . "` AS f, `" . NV_MODULES_TABLE . "` AS m WHERE m.act = 1 AND f.in_module = m.title ORDER BY m.weight, f.subweight";
  212. $list = nv_db_cache($sql, '', 'modules');
  213. foreach ($list as $row)
  214. {
  215. if ($row['title'] == $module_name)
  216. {
  217. $groups_view = ( string )$row['groups_view'];
  218. if (!defined('NV_IS_USER') and $groups_view == 1)
  219. {
  220. // login users
  221. Header("Location: " . NV_BASE_SITEURL . "index.php?" . NV_LANG_VARIABLE . "=" . NV_LANG_DATA . "&" . NV_NAME_VARIABLE . "=users&" . NV_OP_VARIABLE . "=login&nv_redirect=" . nv_base64_encode($client_info['selfurl']));
  222. die();
  223. }
  224. else
  225. if (!defined('NV_IS_ADMIN') and $groups_view == "2")
  226. {
  227. // login admin
  228. nv_info_die($lang_global['error_404_title'], $lang_global['site_info'], $lang_global['module_for_admin']);
  229. //$nv_Request->set_Session( 'admin_login_redirect', $client_info['selfurl'] );
  230. //Header( "Location: " . NV_BASE_SITEURL . NV_ADMINDIR );
  231. die();
  232. }
  233. break;
  234. }
  235. }
  236. }
  237. }
  238. nv_info_die($lang_global['error_404_title'], $lang_global['error_404_title'], $lang_global['error_404_content']);
  239. ?>