PageRenderTime 28ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Quản lý website trường trung học phổ thông PHP/lc1/admin/modules/siteinfo/logs.php

https://gitlab.com/phamngsinh/baitaplon_sinhvien
PHP | 336 lines | 276 code | 44 blank | 16 comment | 36 complexity | e7fc0e152b3f47bb8ea299323014c9a2 MD5 | raw file
  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 11-10-2010 14:43
  7. */
  8. if ( ! defined( 'NV_IS_FILE_SITEINFO' ) ) die( 'Stop!!!' );
  9. /*
  10. * Eg: $id = nv_insert_logs('lang','module name','name key','note',1, 'link acess');
  11. */
  12. $page_title = $lang_module['logs_title'];
  13. $page = $nv_Request->get_int( 'page', 'get', 0 );
  14. $per_page = 30;
  15. $data = array();
  16. $array_userid = array();
  17. $disabled = " disabled=\"disabled\"";
  18. $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM `" . $db_config['prefix'] . "_logs` WHERE `id`!=0";
  19. $base_url = NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=" . $op;
  20. // Search data
  21. $data_search = array(
  22. "q" => $lang_module['filter_enterkey'], //
  23. "from" => "", //
  24. "to" => "", //
  25. "lang" => "", //
  26. "module" => "", //
  27. "user" => "" //
  28. );
  29. if ( $nv_Request->isset_request( 'filter', 'get' ) and $nv_Request->isset_request( 'checksess', 'get' ) )
  30. {
  31. $checksess = filter_text_input( 'checksess', 'get', '', 1 );
  32. if ( $checksess != md5 ( "siteinfo_" . session_id() . "_" . $admin_info['userid'] ) )
  33. {
  34. nv_insert_logs( NV_LANG_DATA, $module_name, sprintf ( $lang_module['filter_check_log'], $op ), $admin_info['username'] . " - " . $admin_info['userid'], 0 );
  35. Header( "Location: " . NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=" . $op );
  36. exit();
  37. }
  38. $data_search = array(
  39. "q" => filter_text_input( 'q', 'get', '' ), //
  40. "from" => filter_text_input( 'from', 'get', '' ), //
  41. "to" => filter_text_input( 'to', 'get', '' ), //
  42. "lang" => filter_text_input( 'lang', 'get', '' ), //
  43. "module" => filter_text_input( 'module', 'get', '' ), //
  44. "user" => filter_text_input( 'user', 'get', '' ) //
  45. );
  46. $base_url .= "&amp;filter=1&amp;checksess=" . $checksess;
  47. $disabled = "";
  48. if ( ! empty ( $data_search['q'] ) and $data_search['q'] != $lang_module['filter_enterkey'] )
  49. {
  50. $base_url .= "&amp;q=" . $data_search['q'];
  51. $sql .= " AND ( `name_key` LIKE '%" . $db->dblikeescape( $data_search['q'] ) . "%' OR `note_action` LIKE '%" . $db->dblikeescape( $data_search['q'] ) . "%' )";
  52. }
  53. if ( ! empty ( $data_search['from'] ) )
  54. {
  55. unset( $match );
  56. if ( preg_match( "/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/", $data_search['from'], $match ) )
  57. {
  58. $from = mktime( 0, 0, 0, $match[2], $match[1], $match[3] );
  59. $sql .= " AND `log_time` >= " . $from;
  60. $base_url .= "&amp;from=" . $data_search['from'];
  61. }
  62. }
  63. if ( ! empty ( $data_search['to'] ) )
  64. {
  65. unset( $match );
  66. if ( preg_match( "/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/", $data_search['to'], $match ) )
  67. {
  68. $to = mktime( 0, 0, 0, $match[2], $match[1], $match[3] );
  69. $sql .= " AND `log_time` <= " . $to;
  70. $base_url .= "&amp;to=" . $data_search['to'];
  71. }
  72. }
  73. if ( ! empty ( $data_search['lang'] ) )
  74. {
  75. if ( in_array( $data_search['lang'], array_keys ( $language_array ) ) )
  76. {
  77. $sql .= " AND `lang`=" . $db->dbescape( $data_search['lang'] );
  78. $base_url .= "&amp;lang=" . $data_search['lang'];
  79. }
  80. }
  81. if ( ! empty ( $data_search['module'] ) )
  82. {
  83. $sql .= " AND `module_name`=" . $db->dbescape( $data_search['module'] );
  84. $base_url .= "&amp;module=" . $data_search['module'];
  85. }
  86. if ( ! empty ( $data_search['user'] ) )
  87. {
  88. $user_tmp = ( $data_search['user'] == "system" ) ? 0 : (int)$data_search['user'];
  89. $sql .= " AND `userid`=" . $user_tmp;
  90. $base_url .= "&amp;user=" . $data_search['user'];
  91. }
  92. }
  93. // Order data
  94. $order = array();
  95. $check_order = array( "ASC", "DESC", "NO" );
  96. $opposite_order = array(
  97. "NO" => "ASC", //
  98. "DESC" => "ASC", //
  99. "ASC" => "DESC" //
  100. );
  101. $lang_order_1 = array(
  102. "NO" => $lang_module['filter_lang_asc'], //
  103. "DESC" => $lang_module['filter_lang_asc'], //
  104. "ASC" => $lang_module['filter_lang_desc'] //
  105. );
  106. $lang_order_2 = array(
  107. "lang" => strtolower ( $lang_module['log_lang'] ), //
  108. "module" => strtolower ( $lang_module['moduleName'] ), //
  109. "time" => strtolower ( $lang_module['log_time'] ) //
  110. );
  111. $order['lang']['order'] = filter_text_input( 'order_lang', 'get', 'NO' );
  112. $order['module']['order'] = filter_text_input( 'order_module', 'get', 'NO' );
  113. $order['time']['order'] = filter_text_input( 'order_time', 'get', 'NO' );
  114. foreach ( $order as $key => $check )
  115. {
  116. if ( ! in_array ( $check['order'], $check_order ) )
  117. {
  118. $order[$key]['order'] = "NO";
  119. }
  120. $order[$key]['data'] = array(
  121. "class" => "order" . strtolower ( $order[$key]['order'] ), //
  122. "url" => $base_url . "&amp;order_" . $key . "=" . $opposite_order[$order[$key]['order']], //
  123. "title" => sprintf ( $lang_module['filter_order_by'], $lang_order_2[$key] ) . " " . $lang_order_1[$order[$key]['order']] //
  124. );
  125. }
  126. if ( $order['lang']['order'] != "NO" )
  127. {
  128. $sql .= " ORDER BY `lang` " . $order['lang']['order'];
  129. }
  130. elseif ( $order['module']['order'] != "NO" )
  131. {
  132. $sql .= " ORDER BY `module_name` " . $order['module']['order'];
  133. }
  134. elseif ( $order['time']['order'] != "NO" )
  135. {
  136. $sql .= " ORDER BY `log_time` " . $order['time']['order'];
  137. }
  138. else
  139. {
  140. $sql .= " ORDER BY `id` DESC";
  141. }
  142. $sql .= " LIMIT " . $page . "," . $per_page;
  143. //
  144. $result_query = $db->sql_query( $sql );
  145. $result = $db->sql_query( "SELECT FOUND_ROWS()" );
  146. list( $all_page ) = $db->sql_fetchrow( $result );
  147. while ( $data_i = $db->sql_fetchrow( $result_query ) )
  148. {
  149. if ( $data_i['userid'] != 0 )
  150. {
  151. if ( ! in_array( $data_i['userid'], $array_userid ) )
  152. {
  153. $array_userid[] = $data_i['userid'];
  154. }
  155. }
  156. $data_i['time'] = nv_date( "d-m-Y h:i:s A", $data_i['log_time'] );
  157. $data[] = $data_i;
  158. unset( $data_i );
  159. }
  160. $data_users = array();
  161. $data_users[0] = "system";
  162. if ( ! empty( $array_userid ) )
  163. {
  164. $array_userid = implode( ",", $array_userid );
  165. $sql = "SELECT userid, username FROM `" . $db_config['prefix'] . "_users` WHERE userid IN (" . $array_userid . ")";
  166. $result_users = $db->sql_query( $sql );
  167. while ( $data_i = $db->sql_fetchrow( $result_users ) )
  168. {
  169. $data_users[$data_i['userid']] = $data_i['username'];
  170. }
  171. unset( $data_i, $result_users );
  172. }
  173. //
  174. $list_lang = nv_siteinfo_getlang ();
  175. $array_lang = array();
  176. $array_lang[] = array(
  177. "key" => "", //
  178. "title" => $lang_module['filter_lang'], //
  179. "selected" => ( $data_search['lang'] == "" ) ? " selected=\"selected\"" : "" //
  180. );
  181. foreach ( $list_lang as $lang )
  182. {
  183. $array_lang[] = array(
  184. "key" => $lang, //
  185. "title" => $language_array[$lang]['name'], //
  186. "selected" => ( $data_search['lang'] == $lang ) ? " selected=\"selected\"" : "" //
  187. );
  188. }
  189. //
  190. $list_module = nv_siteinfo_getmodules ();
  191. $array_module = array();
  192. $array_module[] = array(
  193. "key" => "", //
  194. "title" => $lang_module['filter_module'], //
  195. "selected" => ( $data_search['module'] == "" ) ? " selected=\"selected\"" : "" //
  196. );
  197. foreach ( $list_module as $module )
  198. {
  199. $array_module[] = array(
  200. "key" => $module, //
  201. "title" => $module, //
  202. "selected" => ( $data_search['module'] == $module ) ? " selected=\"selected\"" : "" //
  203. );
  204. }
  205. //
  206. $list_user = nv_siteinfo_getuser ();
  207. $array_user = array();
  208. $array_user[] = array(
  209. "key" => "", //
  210. "title" => $lang_module['filter_user'], //
  211. "selected" => ( $data_search['user'] == "" ) ? " selected=\"selected\"" : "" //
  212. );
  213. $array_user[] = array(
  214. "key" => "system", //
  215. "title" => $lang_module['filter_system'], //
  216. "selected" => ( $data_search['user'] == "system" ) ? " selected=\"selected\"" : "" //
  217. );
  218. foreach ( $list_user as $user )
  219. {
  220. $array_user[] = array(
  221. "key" => $user['userid'], //
  222. "title" => $user['username'], //
  223. "selected" => ( (int)$data_search['user'] == $user['userid'] ) ? " selected=\"selected\"" : "" //
  224. );
  225. }
  226. // Call popcalendar
  227. $my_head = "<script type=\"text/javascript\" src=\"" . NV_BASE_SITEURL . "js/popcalendar/popcalendar.js\"></script>\n";
  228. $my_head .= "<script type=\"text/javascript\" src=\"" . NV_BASE_SITEURL . "js/shadowbox/shadowbox.js\"></script>\n";
  229. $my_head .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . NV_BASE_SITEURL . "js/shadowbox/shadowbox.css\" />\n";
  230. $my_head .= "<script type=\"text/javascript\">\n";
  231. $my_head .= "Shadowbox.init({\n";
  232. $my_head .= "});\n";
  233. $my_head .= "</script>\n";
  234. $xtpl = new XTemplate( "logs.tpl", NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file );
  235. $xtpl->assign( 'LANG', $lang_module );
  236. $xtpl->assign( 'GLANG', $lang_global );
  237. $xtpl->assign( 'NV_BASE_ADMINURL', NV_BASE_ADMINURL );
  238. $xtpl->assign( 'NV_NAME_VARIABLE', NV_NAME_VARIABLE );
  239. $xtpl->assign( 'MODULE_NAME', $module_name );
  240. $xtpl->assign( 'NV_OP_VARIABLE', NV_OP_VARIABLE );
  241. $xtpl->assign( 'OP', $op );
  242. $xtpl->assign( 'checksess', md5 ( "siteinfo_" . session_id() . "_" . $admin_info['userid'] ) );
  243. $xtpl->assign( 'URL_DEL', $base_url . "&" . NV_OP_VARIABLE . "=logs_del" );
  244. $xtpl->assign( 'URL_CANCEL', NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=" . $op );
  245. $xtpl->assign( 'DISABLE', $disabled );
  246. $xtpl->assign( 'DATA_SEARCH', $data_search );
  247. $xtpl->assign( 'DATA_ORDER', $order );
  248. foreach ( $array_lang as $lang )
  249. {
  250. $xtpl->assign( 'lang', $lang );
  251. $xtpl->parse( 'main.lang' );
  252. }
  253. foreach ( $array_module as $module )
  254. {
  255. $xtpl->assign( 'module', $module );
  256. $xtpl->parse( 'main.module' );
  257. }
  258. foreach ( $array_user as $user )
  259. {
  260. $xtpl->assign( 'user', $user );
  261. $xtpl->parse( 'main.user' );
  262. }
  263. $a = 0;
  264. foreach ( $data as $data_i )
  265. {
  266. if ( ! empty( $data_users[$data_i['userid']] ) )
  267. {
  268. $data_i['username'] = $data_users[$data_i['userid']];
  269. }
  270. else
  271. {
  272. $data_i['username'] = "unknown";
  273. }
  274. $xtpl->assign( 'DATA', $data_i );
  275. $xtpl->assign( 'CLASS', $a % 2 == 1 ? " class=\"second\"" : "" );
  276. $xtpl->assign( 'DEL_URL', NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&amp;" . NV_OP_VARIABLE . "=log&amp;" . NV_OP_VARIABLE . "=logs_del&amp;id=" . $data_i['id'] );
  277. $xtpl->assign( 'BACK_URL', $base_url );
  278. $xtpl->parse( 'main.row' );
  279. $a ++;
  280. }
  281. $generate_page = nv_generate_page( $base_url, $all_page, $per_page, $page );
  282. if ( ! empty( $generate_page ) )
  283. {
  284. $xtpl->assign( 'GENERATE_PAGE', $generate_page );
  285. $xtpl->parse( 'main.generate_page' );
  286. }
  287. $xtpl->parse( 'main' );
  288. $contents = $xtpl->text( 'main' );
  289. include ( NV_ROOTDIR . "/includes/header.php" );
  290. echo nv_admin_theme( $contents );
  291. include ( NV_ROOTDIR . "/includes/footer.php" );
  292. ?>