public function init() { global $yakbb; $yakbb->loadLanguageFile("viewboard"); // Get and validate board ID $this->boardid = intval($_GET["board"]); // Force integer value if ($this->boardid == 0) { $yakbb->error(2, "invalid_board_id"); } // Need to check if board is in the database and load data if so. $yakbb->db->query("\r\n\t\t\tSELECT\r\n\t\t\t\t*\r\n\t\t\tFROM\r\n\t\t\t\tyakbb_boards\r\n\t\t\tWHERE\r\n\t\t\t\tid='" . $this->boardid . "'\r\n\t\t\tLIMIT\r\n\t\t\t\t1\r\n\t\t"); if ($yakbb->db->numRows() == 0) { $yakbb->error(2, "board_doesnt_exist"); } $this->bdata = $yakbb->db->fetch(); // Check some permissions $perms = boardPermissions($this->boardid); if ($perms["view"] == false) { $yakbb->error(2, "perms_cant_view_board"); } // Calculate pagination and then load threads $showpagination = false; $totalpages = 1; if ($this->bdata["threads"] > 0) { // Don't load threads if no posts/threads. We'll still load announcements // Load pagination $currentpage = isset($_GET["page"]) && intval($_GET["page"]) > 0 ? intval($_GET["page"]) : 1; if ($this->bdata["threads"] > $yakbb->config["threads_per_page"]) { $showpagination = true; $totalpages = ceil($this->bdata["threads"] / $yakbb->config["threads_per_page"]); if ($currentpage > $totalpages) { $yakbb->error(2, "viewboard_page_doesnt_exist"); } } else { $totalpages = 1; } $yakbb->db->query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tt.*,\r\n\t\t\t\t\tu.username, u.displayname, u.group,\r\n\t\t\t\t\tlpu.username AS lpusername, lpu.displayname AS lpdisplay, lpu.group AS lpgroup\r\n\t\t\t\tFROM\r\n\t\t\t\t\tyakbb_threads t\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tyakbb_users u\r\n\t\t\t\t\tON (u.id = t.creatorid)\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tyakbb_users lpu\r\n\t\t\t\t\tON (u.id = lastpostuser)\r\n\t\t\t\tWHERE\r\n\t\t\t\t\tt.parentid = '" . $this->boardid . "'\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\tt.lastposttime DESC,\r\n\t\t\t\t\tt.id DESC\r\n\t\t\t\tLIMIT\r\n\t\t\t\t\t" . ($currentpage - 1) * $yakbb->config["threads_per_page"] . ", " . $yakbb->config["threads_per_page"] . "\r\n\t\t\t"); $this->threads = array(); while ($t = $yakbb->db->fetch()) { $t["url"] = url_thread($t["id"], $t["name"]); $t["link"] = link_thread($t["id"], $t["name"]); $t["starterlink"] = link_user($t["creatorid"], $t["username"], $t["displayname"], $t["group"]); $t["lpuserlink"] = link_user($t["lastpostuser"], $t["lpusername"], $t["lpdisplay"], $t["lpgroup"]); $t["lpdate"] = makeDate($t["lastposttime"]); $this->threads[] = $t; } } // Template stuff $yakbb->smarty->assign("showpagination", $showpagination); $yakbb->smarty->assign("totalpages", $totalpages); $yakbb->smarty->assign("boardid", $this->boardid); $yakbb->smarty->assign("page_title", $this->bdata["name"]); $yakbb->smarty->assign("threads", $this->threads); $yakbb->loadTemplate("viewboard.tpl"); }
function link_thread($threadid, $threadname, $page = false) { return '<a href="' . url_thread($threadid, $threadname, $page) . '">' . $threadname . '</a>'; }