'p.poster_ip', 'FROM' => 'posts AS p', 'WHERE' => 'p.id='.$get_host ); ($hook = get_hook('mr_view_ip_qr_get_poster_ip')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); if (!$forum_db->num_rows($result)) message($lang_common['Bad request']); $ip = $forum_db->result($result); } ($hook = get_hook('mr_view_ip_pre_output')) ? eval($hook) : null; message(sprintf($lang_misc['Hostname lookup'], $ip, @gethostbyaddr($ip), ''.$lang_misc['Show more users'].'')); } // All other functions require moderator/admin access $fid = isset($_GET['fid']) ? intval($_GET['fid']) : 0; if ($fid < 1) message($lang_common['Bad request']); // Get some info about the forum we're moderating $query = array( 'SELECT' => 'f.forum_name, f.redirect_url, f.num_topics, f.moderators, f.sort_by', 'FROM' => 'forums AS f', 'JOINS' => array( array( 'LEFT JOIN' => 'forum_perms AS fp', 'ON' => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')' ) ), 'WHERE' => '(fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid ); ($hook = get_hook('mr_qr_get_forum_data')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); if (!$forum_db->num_rows($result)) message($lang_common['Bad request']); $cur_forum = $forum_db->fetch_assoc($result); // Make sure we're not trying to moderate a redirect forum if ($cur_forum['redirect_url'] != '') message($lang_common['Bad request']); // Setup the array of moderators $mods_array = ($cur_forum['moderators'] != '') ? unserialize($cur_forum['moderators']) : array(); ($hook = get_hook('mr_pre_permission_check')) ? eval($hook) : null; if ($forum_user['g_id'] != FORUM_ADMIN && ($forum_user['g_moderator'] != '1' || !array_key_exists($forum_user['username'], $mods_array))) message($lang_common['No permission']); // Get topic/forum tracking data if (!$forum_user['is_guest']) $tracked_topics = get_tracked_topics(); // Did someone click a cancel button? if (isset($_POST['cancel'])) redirect(forum_link($forum_url['forum'], array($fid, sef_friendly($cur_forum['forum_name']))), $lang_common['Cancel redirect']); // All topic moderation features require a topic id in GET if (isset($_GET['tid'])) { ($hook = get_hook('mr_post_actions_selected')) ? eval($hook) : null; $tid = intval($_GET['tid']); if ($tid < 1) message($lang_common['Bad request']); // Fetch some info about the topic $query = array( 'SELECT' => 't.subject, t.poster, t.first_post_id, t.posted, t.num_replies', 'FROM' => 'topics AS t', 'WHERE' => 't.id='.$tid.' AND t.moved_to IS NULL' ); ($hook = get_hook('mr_post_actions_qr_get_topic_info')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); if (!$forum_db->num_rows($result)) message($lang_common['Bad request']); $cur_topic = $forum_db->fetch_assoc($result); // User pressed the cancel button if (isset($_POST['delete_posts_cancel'])) redirect(forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject']))), $lang_common['Cancel redirect']); // Delete one or more posts if (isset($_POST['delete_posts']) || isset($_POST['delete_posts_comply'])) { ($hook = get_hook('mr_delete_posts_form_submitted')) ? eval($hook) : null; $posts = isset($_POST['posts']) && !empty($_POST['posts']) ? $_POST['posts'] : array(); $posts = array_map('intval', (is_array($posts) ? $posts : explode(',', $posts))); if (empty($posts)) message($lang_misc['No posts selected']); if (isset($_POST['delete_posts_comply'])) { if (!isset($_POST['req_confirm'])) redirect(forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject']))), $lang_common['No confirm redirect']); ($hook = get_hook('mr_confirm_delete_posts_form_submitted')) ? eval($hook) : null; // Verify that the post IDs are valid $query = array( 'SELECT' => 'COUNT(p.id)', 'FROM' => 'posts AS p', 'WHERE' => 'p.id IN('.implode(',', $posts).') AND p.id!='.$cur_topic['first_post_id'].' AND p.topic_id='.$tid ); ($hook = get_hook('mr_confirm_delete_posts_qr_verify_post_ids')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); if ($forum_db->result($result) != count($posts)) message($lang_common['Bad request']); // Delete the posts $query = array( 'DELETE' => 'posts', 'WHERE' => 'id IN('.implode(',', $posts).')' ); ($hook = get_hook('mr_confirm_delete_posts_qr_delete_posts')) ? eval($hook) : null; $forum_db->query_build($query) or error(__FILE__, __LINE__); if (!defined('FORUM_SEARCH_IDX_FUNCTIONS_LOADED')) require FORUM_ROOT.'include/search_idx.php'; strip_search_index($posts); sync_topic($tid); sync_forum($fid); ($hook = get_hook('mr_confirm_delete_posts_pre_redirect')) ? eval($hook) : null; redirect(forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject']))), $lang_misc['Delete posts redirect']); } // Setup form $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0; $forum_page['form_action'] = forum_link($forum_url['moderate_topic'], array($fid, $tid)); $forum_page['hidden_fields'] = array( 'csrf_token' => '', 'posts' => '' ); // Setup breadcrumbs $forum_page['crumbs'] = array( array($forum_config['o_board_title'], forum_link($forum_url['index'])), array($cur_forum['forum_name'], forum_link($forum_url['forum'], array($fid, sef_friendly($cur_forum['forum_name'])))), array($cur_topic['subject'], forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject'])))), $lang_misc['Delete posts'] ); ($hook = get_hook('mr_confirm_delete_posts_pre_header_load')) ? eval($hook) : null; define('FORUM_PAGE', 'dialogue'); require FORUM_ROOT.'header.php'; // START SUBST - ob_start(); ($hook = get_hook('mr_confirm_delete_posts_output_start')) ? eval($hook) : null; ?>
'.$lang_common['Pages'].' '.paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['moderate_topic'], $lang_common['Paging separator'], array($fid, $tid)).'
'; // Navigation links for header and page numbering for title/meta description if ($forum_page['page'] < $forum_page['num_pages']) { $forum_page['nav']['last'] = ''; $forum_page['nav']['next'] = ''; } if ($forum_page['page'] > 1) { $forum_page['nav']['prev'] = ''; $forum_page['nav']['first'] = ''; } if ($forum_config['o_censoring'] == '1') $cur_topic['subject'] = censor_words($cur_topic['subject']); // Setup form $forum_page['form_action'] = forum_link($forum_url['moderate_topic'], array($fid, $tid)); // Setup breadcrumbs $forum_page['crumbs'] = array( array($forum_config['o_board_title'], forum_link($forum_url['index'])), array($cur_forum['forum_name'], forum_link($forum_url['forum'], array($fid, sef_friendly($cur_forum['forum_name'])))), array($cur_topic['subject'], forum_link($forum_url['topic'], array($tid, sef_friendly($cur_topic['subject'])))), $lang_topic['Moderate topic'] ); // Setup main heading $forum_page['main_title'] = sprintf($lang_misc['Moderate topic head'], forum_htmlencode($cur_topic['subject'])); $forum_page['main_head_options']['select_all'] = ''.$lang_misc['Select all'].''; $forum_page['main_foot_options']['select_all'] = ''.$lang_misc['Select all'].''; if ($forum_page['num_pages'] > 1) $forum_page['main_head_pages'] = sprintf($lang_common['Page info'], $forum_page['page'], $forum_page['num_pages']); ($hook = get_hook('mr_post_actions_pre_header_load')) ? eval($hook) : null; define('FORUM_PAGE', 'modtopic'); require FORUM_ROOT.'header.php'; // START SUBST - ob_start(); ($hook = get_hook('mr_post_actions_output_start')) ? eval($hook) : null; ?>'.$lang_common['Pages'].' '.paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['moderate_forum'], $lang_common['Paging separator'], $fid).'
'; // Navigation links for header and page numbering for title/meta description if ($forum_page['page'] < $forum_page['num_pages']) { $forum_page['nav']['last'] = ''; $forum_page['nav']['next'] = ''; } if ($forum_page['page'] > 1) { $forum_page['nav']['prev'] = ''; $forum_page['nav']['first'] = ''; } // Setup form $forum_page['fld_count'] = 0; $forum_page['form_action'] = forum_link($forum_url['moderate_forum'], $fid); // Setup breadcrumbs $forum_page['crumbs'] = array( array($forum_config['o_board_title'], forum_link($forum_url['index'])), array($cur_forum['forum_name'], forum_link($forum_url['forum'], array($fid, sef_friendly($cur_forum['forum_name'])))), sprintf($lang_misc['Moderate forum head'], forum_htmlencode($cur_forum['forum_name'])) ); // Setup main heading if ($forum_page['num_pages'] > 1) $forum_page['main_head_pages'] = sprintf($lang_common['Page info'], $forum_page['page'], $forum_page['num_pages']); $forum_page['main_head_options']['select_all'] = ''.$lang_misc['Select all'].''; $forum_page['main_foot_options']['select_all'] = ''.$lang_misc['Select all'].''; ($hook = get_hook('mr_topic_actions_pre_header_load')) ? eval($hook) : null; define('FORUM_PAGE', 'modforum'); require FORUM_ROOT.'header.php'; // START SUBST - ob_start(); $forum_page['item_header'] = array(); $forum_page['item_header']['subject']['title'] = ''.$lang_forum['Topics'].''; if ($forum_config['o_topic_views'] == '1') $forum_page['item_header']['info']['views'] = ''.$lang_forum['views'].''; $forum_page['item_header']['info']['replies'] = ''.$lang_forum['replies'].''; $forum_page['item_header']['info']['lastpost'] = ''.$lang_forum['last post'].''; ($hook = get_hook('mr_topic_actions_output_start')) ? eval($hook) : null; ?>