Exemple #1
0
 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");
 }
Exemple #2
0
function link_thread($threadid, $threadname, $page = false)
{
    return '<a href="' . url_thread($threadid, $threadname, $page) . '">' . $threadname . '</a>';
}