PageRenderTime 55ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/nukeviet/modules/news/admin/del_cat.php

http://nuke-viet.googlecode.com/
PHP | 201 lines | 181 code | 14 blank | 6 comment | 26 complexity | bcabece2cc6fac1e348c41293040de93 MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1, GPL-2.0
  1. <?php
  2. /**
  3. * @Project NUKEVIET 3.x
  4. * @Author VINADES.,JSC (contact@vinades.vn)
  5. * @Copyright (C) 2012 VINADES.,JSC. All rights reserved
  6. * @Createdate 2-10-2010 18:49
  7. */
  8. if( ! defined( 'NV_IS_FILE_ADMIN' ) ) die( 'Stop!!!' );
  9. $catid = $nv_Request->get_int( 'catid', 'post', 0 );
  10. $contents = "NO_" . $catid;
  11. list( $catid, $parentid, $title ) = $db->sql_fetchrow( $db->sql_query( "SELECT `catid`, `parentid`, `title` FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `catid`=" . intval( $catid ) ) );
  12. if( $catid > 0 )
  13. {
  14. if( ( defined( 'NV_IS_ADMIN_MODULE' ) or ( $parentid > 0 and isset( $array_cat_admin[$admin_id][$parentid] ) and $array_cat_admin[$admin_id][$parentid]['admin'] == 1 ) ) )
  15. {
  16. $delallcheckss = $nv_Request->get_string( 'delallcheckss', 'post', "" );
  17. list( $check_parentid ) = $db->sql_fetchrow( $db->sql_query( "SELECT COUNT(*) FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `parentid` = '" . $catid . "'" ) );
  18. if( intval( $check_parentid ) > 0 )
  19. {
  20. $contents = "ERR_CAT_" . sprintf( $lang_module['delcat_msg_cat'], $check_parentid );
  21. }
  22. else
  23. {
  24. list( $check_rows ) = $db->sql_fetchrow( $db->sql_query( "SELECT COUNT(*) FROM `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" ) );
  25. if( intval( $check_rows ) > 0 )
  26. {
  27. if( $delallcheckss == md5( $catid . session_id() . $global_config['sitekey'] ) )
  28. {
  29. $delcatandrows = $nv_Request->get_string( 'delcatandrows', 'post', "" );
  30. $movecat = $nv_Request->get_string( 'movecat', 'post', "" );
  31. $catidnews = $nv_Request->get_int( 'catidnews', 'post', 0 );
  32. if( empty( $delcatandrows ) and empty( $movecat ) )
  33. {
  34. $sql = "SELECT `catid`, `title`, `lev` FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `catid` !='" . $catid . "' ORDER BY `order` ASC";
  35. $result = $db->sql_query( $sql );
  36. $array_cat_list = array();
  37. $array_cat_list[0] = "&nbsp;";
  38. while( list( $catid_i, $title_i, $lev_i ) = $db->sql_fetchrow( $result ) )
  39. {
  40. $xtitle_i = "";
  41. if( $lev_i > 0 )
  42. {
  43. $xtitle_i .= "&nbsp;&nbsp;&nbsp;|";
  44. for( $i = 1; $i <= $lev_i; ++$i )
  45. {
  46. $xtitle_i .= "---";
  47. }
  48. $xtitle_i .= ">&nbsp;";
  49. }
  50. $xtitle_i .= $title_i;
  51. $array_cat_list[$catid_i] = $xtitle_i;
  52. }
  53. $xtpl = new XTemplate( "del_cat.tpl", NV_ROOTDIR . "/themes/" . $global_config['module_theme'] . "/modules/" . $module_file );
  54. $xtpl->assign( 'LANG', $lang_module );
  55. $xtpl->assign( 'GLANG', $lang_global );
  56. $xtpl->assign( 'NV_BASE_ADMINURL', NV_BASE_ADMINURL );
  57. $xtpl->assign( 'NV_NAME_VARIABLE', NV_NAME_VARIABLE );
  58. $xtpl->assign( 'NV_OP_VARIABLE', NV_OP_VARIABLE );
  59. $xtpl->assign( 'MODULE_NAME', $module_name );
  60. $xtpl->assign( 'OP', $op );
  61. $xtpl->assign( 'CATID', $catid );
  62. $xtpl->assign( 'DELALLCHECKSS', $delallcheckss );
  63. $xtpl->assign( 'TITLE', sprintf( $lang_module['delcat_msg_rows_select'], $title, $check_rows ) );
  64. while( list( $catid_i, $title_i ) = each( $array_cat_list ) )
  65. {
  66. $xtpl->assign( 'CATIDNEWS', array( "key" => $catid_i, "title" => $title_i ) );
  67. $xtpl->parse( 'main.catidnews' );
  68. }
  69. $xtpl->parse( 'main' );
  70. $contents = $xtpl->text( 'main' );
  71. }
  72. elseif( ! empty( $delcatandrows ) )
  73. {
  74. nv_insert_logs( NV_LANG_DATA, $module_name, $lang_module['delcatandrows'], $title, $admin_info['userid'] );
  75. $sql = $db->sql_query( "SELECT `id`, `catid`, `listcatid` FROM `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" );
  76. while( $row = $db->sql_fetchrow( $sql ) )
  77. {
  78. if( $row['catid'] == $row['listcatid'] )
  79. {
  80. nv_del_content_module( $row['id'] );
  81. }
  82. else
  83. {
  84. $arr_catid_old = explode( ",", $row['listcatid'] );
  85. $arr_catid_i = array( $catid );
  86. $arr_catid_news = array_diff( $arr_catid_old, $arr_catid_i );
  87. if( $catid == $row['catid'] )
  88. {
  89. $row['catid'] = $arr_catid_news[0];
  90. }
  91. foreach( $arr_catid_news as $catid_i )
  92. {
  93. $db->sql_query( "UPDATE `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid_i . "` SET `catid`=" . $row['catid'] . ", `listcatid` = '" . implode( ",", $arr_catid_news ) . "' WHERE `id` =" . $row['id'] );
  94. }
  95. $db->sql_query( "UPDATE `" . NV_PREFIXLANG . "_" . $module_data . "_rows` SET `catid`=" . $row['catid'] . ", `listcatid` = '" . implode( ",", $arr_catid_news ) . "' WHERE `id` =" . $row['id'] );
  96. }
  97. }
  98. $db->sql_query( "DROP TABLE `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" );
  99. $db->sql_query( "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `catid`=" . $catid );
  100. $db->sql_query( "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_admins` WHERE `catid`=" . $catid );
  101. nv_fix_cat_order();
  102. nv_del_moduleCache( $module_name );
  103. Header( "Location: " . NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=cat&parentid=" . $parentid . "" );
  104. die();
  105. }
  106. elseif( ! empty( $movecat ) and $catidnews > 0 and $catidnews != $catid )
  107. {
  108. list( $catidnews, $newstitle ) = $db->sql_fetchrow( $db->sql_query( "SELECT `catid`, `title` FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `catid` =" . $catidnews ) );
  109. if( $catidnews > 0 )
  110. {
  111. nv_insert_logs( NV_LANG_DATA, $module_name, $lang_module['move'], $title . ' --> ' . $newstitle, $admin_info['userid'] );
  112. $sql = $db->sql_query( "SELECT `id`, `catid`, `listcatid` FROM `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" );
  113. while( $row = $db->sql_fetchrow( $sql ) )
  114. {
  115. $arr_catid_old = explode( ",", $row['listcatid'] );
  116. $arr_catid_i = array( $catid );
  117. $arr_catid_news = array_diff( $arr_catid_old, $arr_catid_i );
  118. if( ! in_array( $catidnews, $arr_catid_news ) )
  119. {
  120. $db->sql_query( "INSERT INTO `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catidnews . "` SELECT * FROM `" . NV_PREFIXLANG . "_" . $module_data . "_rows` WHERE `id`=" . $row['id'] . "" );
  121. $arr_catid_news[] = $catidnews;
  122. }
  123. if( $catid == $row['catid'] )
  124. {
  125. $row['catid'] = $catidnews;
  126. }
  127. foreach( $arr_catid_news as $catid_i )
  128. {
  129. $db->sql_query( "UPDATE `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid_i . "` SET `catid`=" . $row['catid'] . ", `listcatid` = '" . implode( ",", $arr_catid_news ) . "' WHERE `id` =" . $row['id'] );
  130. }
  131. $db->sql_query( "UPDATE `" . NV_PREFIXLANG . "_" . $module_data . "_rows` SET `catid`=" . $row['catid'] . ", `listcatid` = '" . implode( ",", $arr_catid_news ) . "' WHERE `id` =" . $row['id'] );
  132. }
  133. $db->sql_query( "DROP TABLE `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" );
  134. $db->sql_query( "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE `catid`=" . $catid );
  135. $db->sql_query( "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_admins` WHERE `catid`=" . $catid );
  136. nv_fix_cat_order();
  137. nv_del_moduleCache( $module_name );
  138. Header( "Location: " . NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=cat&parentid=" . $parentid . "" );
  139. die();
  140. }
  141. }
  142. }
  143. else
  144. {
  145. $contents = "ERR_ROWS_" . $catid . "_" . md5( $catid . session_id() . $global_config['sitekey'] ) . "_" . sprintf( $lang_module['delcat_msg_rows'], $check_rows );
  146. }
  147. }
  148. }
  149. if( $contents == "NO_" . $catid )
  150. {
  151. if( $delallcheckss == md5( $catid . session_id() ) )
  152. {
  153. $sql = "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_cat` WHERE catid=" . $catid;
  154. if( $db->sql_query( $sql ) )
  155. {
  156. nv_insert_logs( NV_LANG_DATA, $module_name, $lang_module['delcatandrows'], $title, $admin_info['userid'] );
  157. $db->sql_freeresult();
  158. nv_fix_cat_order();
  159. $db->sql_query( "DROP TABLE `" . NV_PREFIXLANG . "_" . $module_data . "_" . $catid . "`" );
  160. $contents = "OK_" . $parentid;
  161. }
  162. $db->sql_query( "DELETE FROM `" . NV_PREFIXLANG . "_" . $module_data . "_admins` WHERE `catid`=" . $catid );
  163. nv_del_moduleCache( $module_name );
  164. }
  165. else
  166. {
  167. $contents = "CONFIRM_" . $catid . "_" . md5( $catid . session_id() );
  168. }
  169. }
  170. }
  171. else
  172. {
  173. $contents = "ERR_CAT_" . $lang_module['delcat_msg_cat_permissions'];
  174. }
  175. }
  176. if( defined( 'NV_IS_AJAX' ) )
  177. {
  178. include ( NV_ROOTDIR . "/includes/header.php" );
  179. echo $contents;
  180. include ( NV_ROOTDIR . "/includes/footer.php" );
  181. }
  182. else
  183. {
  184. Header( "Location: " . NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=cat" );
  185. die();
  186. }
  187. ?>