/** * Ouput a "no permission"page. */ function archive_error_no_permission() { global $lang, $db, $session; $noperm_array = array("nopermission" => '1', "location1" => 0, "location2" => 0); $db->update_query("sessions", $noperm_array, "sid='{$session->sid}'"); archive_error($lang->archive_nopermission); }
echo $forums; echo "\n</ul>\n</div>\n</div>"; $plugins->run_hooks("archive_index_end"); archive_footer(); break; default: header("HTTP/1.0 404 Not Found"); switch ($action2) { case "announcement": archive_error($lang->error_invalidannouncement); case "thread": archive_error($lang->error_invalidthread); case "forum": archive_error($lang->error_invalidforum); default: archive_error($lang->archive_not_found); } } $plugins->run_hooks("archive_end"); /** * Gets a list of forums and possibly subforums. * * @param int The parent forum to get the childforums for. * @return array Array of information regarding the child forums of this parent forum */ function build_archive_forumbits($pid = 0) { global $db, $forumpermissions, $mybb, $lang, $archiveurl, $base_url; // Sort out the forum cache first. static $fcache; if (!is_array($fcache)) {
archive_error($lang->error_banned); } // If our board is closed.. if ($mybb->settings['boardclosed'] == 1) { if ($mybb->usergroup['canviewboardclosed'] != 1) { if (!$mybb->settings['boardclosed_reason']) { $mybb->settings['boardclosed_reason'] = $lang->boardclosed_reason; } $lang->error_boardclosed .= "<blockquote>" . $mybb->settings['boardclosed_reason'] . "</blockquote>"; archive_error($lang->error_boardclosed); } } // Do we require users to login? if ($mybb->settings['forcelogin'] == 1) { if ($mybb->user['uid'] == 0) { archive_error($lang->error_mustlogin); } } // Load Limiting - DIRECTORY_SEPARATOR checks if running windows if (DIRECTORY_SEPARATOR != '\\') { if ($uptime = @exec('uptime')) { preg_match("/averages?: ([0-9\\.]+),[\\s]+([0-9\\.]+),[\\s]+([0-9\\.]+)/", $uptime, $regs); $load = $regs[1]; if ($mybb->usergroup['cancp'] != 1 && $load > $mybb->settings['load'] && $mybb->settings['load'] > 0) { archive_error($lang->error_loadlimit); } } } if ($mybb->usergroup['canview'] == 0) { archive_error_no_permission(); }
case "forum": // Check if we have permission to view this forum $forumpermissions = forum_permissions($forum['fid']); if ($forumpermissions['canview'] != 1) { archive_error_no_permission(); } check_forum_password_archive($forum['fid']); // Paginate this forum $query = $db->simple_select("threads", "COUNT(tid) AS threads", "fid='{$id}' AND visible='1'"); $threadcount = $db->fetch_field($query, "threads"); // Build the navigation build_forum_breadcrumb($forum['fid'], 1); // No threads and not a category? Error! if ($threadcount < 1 && $forum['type'] != 'c') { archive_header(strip_tags($forum['name']), $forum['name'], $mybb->settings['bburl'] . "/" . get_forum_link($id) . ""); archive_error($lang->error_nothreads); } // Build the archive header. archive_header(strip_tags($forum['name']), $forum['name'], $mybb->settings['bburl'] . "/" . get_forum_link($id . ""), 1); $plugins->run_hooks("archive_forum_start"); if (!$mybb->settings['threadsperpage']) { $mybb->settings['threadsperpage'] = 20; } $perpage = $mybb->settings['threadsperpage']; $pages = ceil($threadcount / $perpage); if ($page > $pages) { $page = 1; } if ($page > 0) { $start = ($page - 1) * $perpage; } else {
/** * Ouput a "no permission"page. */ function archive_error_no_permission() { global $lang; archive_error($lang->archive_nopermission); }