function generate_search_crumbs($action = null) { global $forum_page, $lang_common, $lang_search, $forum_url, $forum_user, $num_hits, $search_set, $search_id, $show_as; $return = ($hook = get_hook('sf_fn_generate_search_crumbs_start')) ? eval($hook) : null; if ($return != null) { return; } switch ($action) { case 'show_new': $forum_page['crumbs'][] = $lang_search['Topics with new']; $forum_page['items_info'] = generate_items_info($lang_search['Topics found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; $forum_page['main_foot_options']['mark_all'] = '<span' . (empty($forum_page['main_foot_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['mark_read'], generate_form_token('markread' . $forum_user['id'])) . '">' . $lang_common['Mark all as read'] . '</a></span>'; // Add link for show all topics, not only new (updated) if ($search_id != -1) { $forum_page['main_head_options']['show_all'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['forum'], $search_set[0]['forum_id']) . '">' . $lang_search['All Topics'] . '</a></span>'; } break; case 'show_recent': $forum_page['crumbs'][] = $lang_search['Recently active topics']; $forum_page['items_info'] = generate_items_info($lang_search['Topics found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; case 'show_unanswered': $forum_page['crumbs'][] = $lang_search['Unanswered topics']; $forum_page['items_info'] = generate_items_info($lang_search['Topics found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; case 'show_user_posts': $forum_page['crumbs'][] = sprintf($lang_search['Posts by'], $search_set[0]['pposter'], $forum_page['start_from'] + 1, $num_hits); $forum_page['items_info'] = generate_items_info($lang_search['Posts found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['user_topics'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search_user_topics'], $search_id) . '">' . sprintf($lang_search['Topics by'], forum_htmlencode($search_set[0]['pposter'])) . '</a></span>'; $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; case 'show_user_topics': $forum_page['crumbs'][] = sprintf($lang_search['Topics by'], $search_set[0]['poster']); $forum_page['items_info'] = generate_items_info($lang_search['Topics found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['user_posts'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search_user_posts'], $search_id) . '">' . sprintf($lang_search['Posts by'], forum_htmlencode($search_set[0]['poster'])) . '</a></span>'; $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; case 'show_subscriptions': $forum_page['crumbs'][] = $lang_search['Subscriptions']; $forum_page['items_info'] = generate_items_info($lang_search['Topics found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; case 'show_forum_subscriptions': $forum_page['crumbs'][] = $lang_search['Forum subscriptions']; $forum_page['items_info'] = generate_items_info($lang_search['Forums found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['defined_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['User defined search'] . '</a></span>'; break; default: $forum_page['crumbs'][] = $lang_search['Search results']; $forum_page['items_info'] = generate_items_info($show_as == 'topics' ? $lang_search['Topics found'] : $lang_search['Posts found'], $forum_page['start_from'] + 1, $num_hits); $forum_page['main_head_options']['new_search'] = '<span' . (empty($forum_page['main_head_options']) ? ' class="first-item"' : '') . '><a href="' . forum_link($forum_url['search']) . '">' . $lang_search['Perform new search'] . '</a></span>'; break; } }
} } ($hook = get_hook('mr_new_action')) ? eval($hook) : null; // No specific forum moderation action was specified in the query string, so we'll display the moderate forum view // If forum is empty if ($cur_forum['num_topics'] == 0) { message($lang_common['Bad request']); } // Load the viewforum.php language file require FORUM_ROOT . 'lang/' . $forum_user['language'] . '/forum.php'; // Determine the topic offset (based on $_GET['p']) $forum_page['num_pages'] = ceil($cur_forum['num_topics'] / $forum_user['disp_topics']); $forum_page['page'] = !isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages'] ? 1 : $_GET['p']; $forum_page['start_from'] = $forum_user['disp_topics'] * ($forum_page['page'] - 1); $forum_page['finish_at'] = min($forum_page['start_from'] + $forum_user['disp_topics'], $cur_forum['num_topics']); $forum_page['items_info'] = generate_items_info($lang_misc['Topics'], $forum_page['start_from'] + 1, $cur_forum['num_topics']); // Select topics $query = array('SELECT' => 't.id, t.poster, t.subject, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to', 'FROM' => 'topics AS t', 'WHERE' => 'forum_id=' . $fid, 'ORDER BY' => 't.sticky DESC, ' . ($cur_forum['sort_by'] == '1' ? 't.posted' : 't.last_post') . ' DESC', 'LIMIT' => $forum_page['start_from'] . ', ' . $forum_user['disp_topics']); // With "has posted" indication if (!$forum_user['is_guest'] && $forum_config['o_show_dot'] == '1') { $query['SELECT'] .= ', p.poster_id AS has_posted'; $query['JOINS'][] = array('LEFT JOIN' => 'posts AS p', 'ON' => '(p.poster_id=' . $forum_user['id'] . ' AND p.topic_id=t.id)'); // Must have same columns as in prev SELECT $query['GROUP BY'] = 't.id, t.poster, t.subject, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, p.poster_id'; ($hook = get_hook('mr_qr_get_has_posted')) ? eval($hook) : null; } ($hook = get_hook('mr_qr_get_topics')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); // Generate paging links $forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">' . $lang_common['Pages'] . '</span> ' . paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['moderate_forum'], $lang_common['Paging separator'], $fid) . '</p>'; // Navigation links for header and page numbering for title/meta description
$forum_user['may_post'] = $cur_topic['post_replies'] == '' && $forum_user['g_post_replies'] == '1' || $cur_topic['post_replies'] == '1' || $forum_page['is_admmod'] ? true : false; } else { $forum_user['may_post'] = false; } // Add/update this topic in our list of tracked topics if (!$forum_user['is_guest']) { $tracked_topics = get_tracked_topics(); $tracked_topics['topics'][$id] = time(); set_tracked_topics($tracked_topics); } // Determine the post offset (based on $_GET['p']) $forum_page['num_pages'] = ceil(($cur_topic['num_replies'] + 1) / $forum_user['disp_posts']); $forum_page['page'] = !isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages'] ? 1 : $_GET['p']; $forum_page['start_from'] = $forum_user['disp_posts'] * ($forum_page['page'] - 1); $forum_page['finish_at'] = min($forum_page['start_from'] + $forum_user['disp_posts'], $cur_topic['num_replies'] + 1); $forum_page['items_info'] = generate_items_info($lang_topic['Posts'], $forum_page['start_from'] + 1, $cur_topic['num_replies'] + 1); ($hook = get_hook('vt_modify_page_details')) ? eval($hook) : null; // Navigation links for header and page numbering for title/meta description if ($forum_page['page'] < $forum_page['num_pages']) { $forum_page['nav']['last'] = '<link rel="last" href="' . forum_sublink($forum_url['topic'], $forum_url['page'], $forum_page['num_pages'], array($id, sef_friendly($cur_topic['subject']))) . '" title="' . $lang_common['Page'] . ' ' . $forum_page['num_pages'] . '" />'; $forum_page['nav']['next'] = '<link rel="next" href="' . forum_sublink($forum_url['topic'], $forum_url['page'], $forum_page['page'] + 1, array($id, sef_friendly($cur_topic['subject']))) . '" title="' . $lang_common['Page'] . ' ' . ($forum_page['page'] + 1) . '" />'; } if ($forum_page['page'] > 1) { $forum_page['nav']['prev'] = '<link rel="prev" href="' . forum_sublink($forum_url['topic'], $forum_url['page'], $forum_page['page'] - 1, array($id, sef_friendly($cur_topic['subject']))) . '" title="' . $lang_common['Page'] . ' ' . ($forum_page['page'] - 1) . '" />'; $forum_page['nav']['first'] = '<link rel="first" href="' . forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['subject']))) . '" title="' . $lang_common['Page'] . ' 1" />'; } if ($forum_config['o_censoring'] == '1') { $cur_topic['subject'] = censor_words($cur_topic['subject']); } // Generate paging and posting links $forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">' . $lang_common['Pages'] . '</span> ' . paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['topic'], $lang_common['Paging separator'], array($id, sef_friendly($cur_topic['subject']))) . '</p>';
// Fetch user count $query = array('SELECT' => 'COUNT(u.id)', 'FROM' => 'users AS u', 'WHERE' => 'u.id > 1 AND u.group_id != ' . FORUM_UNVERIFIED); if (!empty($where_sql)) { $query['WHERE'] .= ' AND ' . implode(' AND ', $where_sql); } ($hook = get_hook('ul_qr_get_user_count')) ? eval($hook) : null; $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); $forum_page['num_users'] = $forum_db->result($result); // Determine the user offset (based on $_GET['p']) $forum_page['num_pages'] = ceil($forum_page['num_users'] / 50); $forum_page['page'] = !isset($_GET['p']) || !is_numeric($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages'] ? 1 : intval($_GET['p']); $forum_page['start_from'] = 50 * ($forum_page['page'] - 1); $forum_page['finish_at'] = min($forum_page['start_from'] + 50, $forum_page['num_users']); $forum_page['users_searched'] = $forum_user['g_search_users'] == '1' && $forum_page['username'] != '' || $forum_page['show_group'] > -1; if ($forum_page['num_users'] > 0) { $forum_page['items_info'] = generate_items_info($forum_page['users_searched'] ? $lang_ul['Users found'] : $lang_ul['Users'], $forum_page['start_from'] + 1, $forum_page['num_users']); } else { $forum_page['items_info'] = $lang_ul['Users']; } // Generate paging links $forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">' . $lang_common['Pages'] . '</span> ' . paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['users_browse'], $lang_common['Paging separator'], array($forum_page['show_group'], $forum_page['sort_by'], $forum_page['sort_dir'], $forum_page['username'] != '' ? urlencode($forum_page['username']) : '-')) . '</p>'; // Navigation links for header and page numbering for title/meta description if ($forum_page['page'] < $forum_page['num_pages']) { $forum_page['nav']['last'] = '<link rel="last" href="' . forum_sublink($forum_url['users_browse'], $forum_url['page'], $forum_page['num_pages'], array($forum_page['show_group'], $forum_page['sort_by'], $forum_page['sort_dir'], $forum_page['username'] != '' ? urlencode($forum_page['username']) : '-')) . '" title="' . $lang_common['Page'] . ' ' . $forum_page['num_pages'] . '" />'; $forum_page['nav']['next'] = '<link rel="next" href="' . forum_sublink($forum_url['users_browse'], $forum_url['page'], $forum_page['page'] + 1, array($forum_page['show_group'], $forum_page['sort_by'], $forum_page['sort_dir'], $forum_page['username'] != '' ? urlencode($forum_page['username']) : '-')) . '" title="' . $lang_common['Page'] . ' ' . ($forum_page['page'] + 1) . '" />'; } if ($forum_page['page'] > 1) { $forum_page['nav']['prev'] = '<link rel="prev" href="' . forum_sublink($forum_url['users_browse'], $forum_url['page'], $forum_page['page'] - 1, array($forum_page['show_group'], $forum_page['sort_by'], $forum_page['sort_dir'], $forum_page['username'] != '' ? urlencode($forum_page['username']) : '-')) . '" title="' . $lang_common['Page'] . ' ' . ($forum_page['page'] - 1) . '" />'; $forum_page['nav']['first'] = '<link rel="first" href="' . forum_link($forum_url['users_browse'], array($forum_page['show_group'], $forum_page['sort_by'], $forum_page['sort_dir'], $forum_page['username'] != '' ? urlencode($forum_page['username']) : '-')) . '" title="' . $lang_common['Page'] . ' 1" />'; } // Setup main options