query("UPDATE " . PREFIX . "_forum_topics SET topic_status = '0' WHERE tid = '$topic_id'"); $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '0' WHERE topic_id = '$topic_id' and hidden NOT IN (1,6)"); } header("Location: $_SERVER[HTTP_REFERER]"); } else { die("Hacking attempt!"); } break; // ******************************************************************************** // CLOSE TOPIC // ******************************************************************************** case "02": if ($selectedtids and is_moderation(0, $selectedtids, 0) OR group_moderation($selectedtids, 'forum_topic_set')) { if (!moderator_value('close_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_set')) die(); $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET topic_status = '1' WHERE tid = '$topic_id'"); $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '2' WHERE topic_id = '$topic_id' and hidden NOT IN (1,6)"); } header("Location: {$_SERVER['HTTP_REFERER']}"); } else { die("Hacking attempt!"); } break; // ******************************************************************************** // DEL TOPIC // ******************************************************************************** case "03": if ($selectedtids and is_moderation(0, $selectedtids, 0) OR group_moderation($selectedtids, 'forum_topic_del')) { if (!moderator_value('delete_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_del')) die(); $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$topic_id'"); $topic_id = $row_topic['tid']; $forum_id = $row_topic['forum_id']; $post_all = $row_topic['post']; if (!$forum_config['set_topic_post']) { $post_all = ($post_all - 1); } if ($topic_id) { // user converting // if ($forum_config['set_post_num_up']) { $query = $db->query("SELECT distinct post_author FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); while ($row = $db->get_row($query)) { if ($forum_config['set_topic_post']) { $topic = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE author_topic = '$row[post_author]'"); $topic_num = $topic['count']; } $post = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_posts WHERE post_author = '$row[post_author]'"); $post_num = $post['count']; $update = ($topic_num + $post_num); $db->query("UPDATE " . PREFIX . "_users SET forum_post = '$update' WHERE name ='$row[post_author]'"); } } // Удаление вложений вместе с темой $result = $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE topic_id = '" . $topic_id . "'"); while ($row = $db->get_row($result)) { if ($row['file_type'] == "file") { unlink(UPLOAD_DIR."files/" . $row['onserver']); } elseif ($row['file_type'] == "thumb") { unlink(UPLOAD_DIR."thumbs/" . $row['onserver']); unlink(UPLOAD_DIR."images/" . $row['onserver']); } else { unlink(UPLOAD_DIR."images/" . $row['onserver']); } } $db->query("DELETE FROM " . PREFIX . "_forum_files WHERE topic_id = '" . $topic_id . "'"); // конец удаления вложений вместе с темой $db->query("DELETE FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); $db->query("DELETE FROM " . PREFIX . "_forum_topics WHERE `tid` = '$topic_id'"); $new_result = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '$forum_id' ORDER by start_date DESC"); $db->query("UPDATE " . PREFIX . "_forum_forums SET topics = topics-1, posts = posts-$post_all, f_last_tid = '$new_result[tid]', f_last_title = '$new_result[title]', f_last_date = '$new_result[last_date]', f_last_poster_name = '$new_result[last_poster_name]' WHERE id ='$forum_id'"); $db->query("DELETE FROM " . PREFIX . "_forum_poll_log WHERE topic_id = '$topic_id'"); // del discuss id // $db->query("UPDATE " . PREFIX . "_post SET news_tid = '0' WHERE news_tid = '$topic_id'"); // del attachment // $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE topic_id = '$topic_id'"); // and file_attach='1' while($row = $db->get_row()) { if ($row['file_type'] == "image") { @unlink(UPLOAD_DIR."images/".$row['onserver']); } elseif ($row['file_type'] == "thumb") { @unlink(UPLOAD_DIR."thumbs/".$row['onserver']); @unlink(UPLOAD_DIR."images/".$row['onserver']); } else { @unlink(UPLOAD_DIR."files/".$row['onserver']); } $db->query("DELETE FROM " . PREFIX . "_forum_files WHERE file_id = '$row[file_id]'"); } // end - del attachment // } } if ($forum_config['mod_rewrite']) { $forum_location = "{$forum_url}/forum_{$forum_id}"; } else { $forum_location = "{$forum_url}showforum={$forum_id}"; } header("Location: {$forum_location}"); } else { die("Hacking attempt!"); } break; // ******************************************************************************** // EDIT TOPIC TITLE // ******************************************************************************** case "04": $selectedtids = intval($selectedtids); if (!$subaction and is_moderation(0, $selectedtids, 0) OR !$subaction and group_moderation($selectedtids, 'forum_topic_edit')) { if (!moderator_value('edit_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_edit')) die(); $row = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '{$selectedtids}'"); $topic_action_add = $a_forum_url."act=moderation&code=04&subaction=save&selected_id={$selectedtids}"; require_once SYSTEM_DIR.'/classes/parse.class.php'; $parse = new ParseFilter(); $parse->safe_mode = true; $topic_title = $parse->decodeBBCodes($row['title'], false); $topic_descr = $parse->decodeBBCodes($row['topic_descr'], false); $tpl->load_template($tpl_dir.'edittopic.tpl'); $tpl->set('{topic_title}', $topic_title); $tpl->set('{topic_descr}', $topic_descr); if (check_access($forum_config['tools_poll'])) { $tpl->set('[poll]',''); $tpl->set('[/poll]',''); $tpl->set('{vote_title}', $parse->decodeBBCodes($row['poll_title'], false)); $tpl->set('{frage}', $parse->decodeBBCodes($row['frage'], false)); $tpl->set('{vote_body}', $parse->decodeBBCodes($row['poll_body'], false)); } else { $tpl->set_block("'\\[poll\\](.*?)\\[/poll\\]'si",""); } $tpl->copy_template = "
".$tpl->copy_template."
"; $tpl->compile('dle_forum'); $tpl->clear(); } if ($subaction == "save" and is_moderation(0, $selectedtids, 0) OR $subaction == "save" and group_moderation($selectedtids, 'forum_topic_edit')) { if (!moderator_value('edit_topic', $forum_id, $m_member) AND !group_moderation($selectedtids, 'forum_topic_edit')) die(); require_once SYSTEM_DIR.'/classes/parse.class.php'; $parse->safe_mode = true; $parse = new ParseFilter(Array(), Array(), 1, 1); $topic_title = $db->safesql($parse->process($_POST['topic_title'])); $topic_descr = $db->safesql($parse->process($_POST['topic_descr'])); $vote_title = trim($db->safesql($parse->process($_POST['vote_title']))); $frage = trim($db->safesql($parse->process($_POST['frage']))); $vote_body = $db->safesql($parse->BB_Parse($parse->process($_POST['vote_body']), false)); $poll_multiple = intval($_POST['poll_multiple']); $db->query("UPDATE " . PREFIX . "_forum_topics SET title = '$topic_title', topic_descr = '$topic_descr', poll_title = '$vote_title', frage = '$frage', poll_body = '$vote_body', multiple = '$poll_multiple' WHERE tid = '$selectedtids'"); if ($forum_config['mod_rewrite']) { $topic_location = "{$forum_url}/topic_$selectedtids"; } else { $topic_location = "{$forum_url}showtopic=$selectedtids"; } header("Location: $topic_location"); } $bbr_app = "Редактирование темы"; break; // ******************************************************************************** // MOVE TOPIC // ******************************************************************************** case "05": if ($selectedtids and is_moderation(0, $selectedtids, 0)) { if (!moderator_value('move_topic', $is_mod['forum_id'], $m_member)) die(); $move_fid = $_REQUEST['move_fid']; if (!$subaction) { $topic_action_add = "{$a_forum_url}act=moderation&code=05&subaction=move&selected_id=$selectedtids"; $tpl->load_template($tpl_dir.'movetopic.tpl'); $tpl->set('{topic_title}', $topic_title); $tpl->set('{forum}', $is_forum_name); $tpl->set('{forum_list}', forum_list()); $tpl->copy_template = "
".$tpl->copy_template."
"; $tpl->compile('dle_forum'); $tpl->clear(); } if ($subaction == "move" and $selectedtids and $move_fid) { $tid = $selectedtids; $selectedtids = explode(",",$selectedtids); $new_post_count = 0; $postcount = intval ($forums_array[$move_fid]['postcount']); foreach ($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET forum_id = '$move_fid' WHERE tid = '$topic_id'"); $tid_count++; $post = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_posts WHERE topic_id = '$topic_id'"); $post_count = $post_count + $post['count']; $db->query("UPDATE " . PREFIX . "_forum_posts SET is_count = '$postcount' WHERE topic_id = '$topic_id'"); } $post_count = $post_count - $tid_count; if ($forum_config['topic_sort']) $sort_type = "last_date"; else $sort_type = "tid"; $row1 = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '{$is_mod['forum_id']}' ORDER by $sort_type DESC"); $row2 = $db->super_query("SELECT * FROM ". PREFIX ."_forum_topics WHERE forum_id = '$move_fid' ORDER by $sort_type DESC"); $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = posts-$post_count, topics = topics-$tid_count, f_last_tid = '$row1[tid]', f_last_title = '$row1[title]', f_last_date ='$row1[last_date]', f_last_poster_name = '$row1[last_poster_name]' WHERE id = '{$is_mod['forum_id']}'"); $db->query("UPDATE " . PREFIX . "_forum_forums SET posts = posts+$post_count, topics = topics+$tid_count, f_last_tid = '$row2[tid]', f_last_title = '$row2[title]', f_last_date ='$row2[last_date]', f_last_poster_name = '$row2[last_poster_name]' WHERE id = '$move_fid'"); if ($forum_config['mod_rewrite']) { $topic_location = "{$forum_url}/topic_$tid"; $forum_location = "{$forum_url}/forum_$move_fid"; } else { $topic_location = "{$forum_url}showtopic=$tid"; $forum_location = "{$forum_url}showforum=$move_fid"; } if ($tid_count > 1) { header("Location: $forum_location"); } else { header("Location: $topic_location"); } } $bbr_app = "Перемещение темы"; } break; // ******************************************************************************** // HIDDEN TOPIC // ******************************************************************************** case "06": if ($selectedtids and is_moderation(0, $selectedtids, 0)) { $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET hidden = '1' WHERE tid = '$topic_id'"); $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '6' WHERE topic_id = '$topic_id' and hidden NOT IN (1,2)"); } header("Location: {$_SERVER['HTTP_REFERER']}"); } break; // ******************************************************************************** // NOT HIDDEN TOPIC // ******************************************************************************** case "07": if ($selectedtids and is_moderation(0, $selectedtids, 0)) { $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET hidden = '0' WHERE tid = '$topic_id'"); $db->query("UPDATE " . PREFIX . "_forum_posts SET hidden = '0' WHERE topic_id = '$topic_id' and hidden NOT IN (1,2)"); } header("Location: {$_SERVER['HTTP_REFERER']}"); } break; // ******************************************************************************** // FIXED TOPIC // ******************************************************************************** case "08": if ($selectedtids and is_moderation(0, $selectedtids, 0)) { if (!moderator_value('pin_topic', $forum_id, $m_member)) die(); $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET fixed = '0' WHERE tid = '$topic_id'"); } header("Location: {$_SERVER['HTTP_REFERER']}"); } break; // ******************************************************************************** // NOT FIXED TOPIC // ******************************************************************************** case "09": if ($selectedtids and is_moderation(0, $selectedtids, 0)) { if (!moderator_value('unpin_topic', $forum_id, $m_member)) die(); $selectedtids = explode(",",$selectedtids); foreach($selectedtids as $topic_id) { $topic_id = intval($topic_id); if ( $topic_id == 0 ) continue; $db->query("UPDATE " . PREFIX . "_forum_topics SET fixed = '1' WHERE tid = '$topic_id'"); } header("Location: {$_SERVER['HTTP_REFERER']}"); } break; // ******************************************************************************** // CALC // ******************************************************************************** case "10": $topic_id = intval($_REQUEST['tid']); if ($topic_id and is_moderation(0, $topic_id, 0)) { calk_topic_del ($topic_id); header("Location: {$_SERVER['HTTP_REFERER']}"); } break; // ******************************************************************************** // Default // ******************************************************************************** default: header("Location: {$_SERVER['HTTP_REFERER']}"); break; } ?>