private function get_posts($data) { if (isset($data['cat']) && isset($data['thread']) && isset($data['page'])) { // Set variables $category_id = $data['cat']; $thread_id = $data['thread']; $page_num = @$data['page']; $pageQueue = 0; // Check category's access permissions $category = category::get($category_id); if ($this->user['SiteRank'] >= $category['rankRead'] || $category['rankRead'] == 0) { // Fetch thread data $thread = thread::get($thread_id); if ($thread != null) { // Page manager $num_rows = $thread['noreplys']; $bottomNav = ''; $num_pages = floor($num_rows / 10 + 1); if ($page_num == 0) { // If not set by url then default to the first page $page_num = 1; // default first page if ($num_rows > 10) { // if there are more than 10 rows $nextPageNumber = 2; // default next page if not defined in the url if ($pageQueue + 10 > $num_rows) { } else { $bottomNav = '<a href="' . site_url . '#/forum/' . $category_id . '/' . $thread_id . '/pg' . $nextPageNumber . '" class="forum-link pagination">Next >></a><br/>'; } } } else { $nextPageNumber = $page_num + 1; $previousPage = $page_num - 1; if ($num_rows > 10) { if ($page_num == 1) { $pageQueue = 0; } else { $pageQueue = $page_num * 10 - 10; } if ($pageQueue + 10 > $num_rows) { $bottomNav = '<a href="' . site_url . '#/forum/' . $category_id . '/' . $thread_id . '/pg' . $previousPage . '" class="forum-link pagination"><< Back</a> ' . 'Page #' . $page_num . '/' . $num_pages; } else { if ($page_num < 2) { $bottomNav = 'Page #' . $page_num . '/' . $num_pages . '<a href="' . site_url . '#/forum/' . $category_id . '/' . $thread_id . '/pg' . $nextPageNumber . '" class="forum-link pagination" data-page="' . $nextPageNumber . '">Next >></a><br/>'; } else { $bottomNav = '<a href="' . site_url . '#/forum/' . $category_id . '/' . $thread_id . '/pg' . $previousPage . '" class="forum-link pagination"><< Back</a> <span>Page #' . $page_num . ' / ' . $num_pages . '</span><a href="' . site_url . '#/forum/' . $category_id . '/' . $thread_id . '/pg' . $nextPageNumber . '" class="forum-link pagination" data-page="' . $nextPageNumber . '">Next >></a><br/>'; } } } } // Fetch thread posts $posts = post::get_all($data['cat'], $data['thread'], $pageQueue); $templateData = array(); $templateData['category'] = $category; $templateData['thread'] = $thread; $templateData['thread']['permissions'] = array('write' => $this->user['SiteRank'] >= $category['rankPost'] ? true : false); $templateData['thread']['locked'] = (bool) $templateData['thread']['locked']; $templateData['user'] = $this->user; $templateData['user']['moderator'] = $this->user['SiteRank'] >= 4 ? true : false; $templateData['user']['BanStatus'] = @(bool) $templateData['user']['BanStatus'] || false; $templateData['bottomNav'] = $bottomNav; foreach ($posts->rows as $post) { // Some vars $postAuthorData = user::get($post['author'])->data; // $postid = $post['id']; $userPage = site_url . '#/user/' . $post['author']; //author url if ($postAuthorData['SiteRank'] == 5) { $postrRank = 'Admin'; } elseif ($postAuthorData['SiteRank'] >= 1) { $postrRank = 'Guildie'; } elseif ($postAuthorData['SiteRank'] == 0) { $postrRank = 'New'; } else { $postrRank = 'New'; } // Check to see if post has been edited if ($post['timeedited'] != 0) { $postEdited = '<div class="postEdited">Last Edited ' . date('h:i:a d/m/Y', $post['timeedited']) . ' by ' . $post['lasteditedby'] . '</div>'; } else { $postEdited = ''; } $templateData['posts'][] = array('threadLink' => site_url . '#/forum/' . $post['category'] . '/' . $post['thread'], 'editLink' => site_url . '#/forum/' . $post['category'] . '/' . $post['thread'] . '/edit' . $post['id'], 'unixTOhuman' => date('h:i:s A | D, d M Y', $post['timeposted']), 'post' => $post['post'], 'firstPost' => $post['postorderid'] == 0 ? true : false, 'author' => $postAuthorData, 'postAuthor' => $postAuthorData['Username'] == $this->user['Username'] ? true : false, 'postrRank' => strtolower($postrRank), 'postEdited' => $postEdited); } build::page($templateData, 'forum/posts'); // Update Thread View Counter thread::update_thread_views($thread_id); } else { self::errorHTML('Uh oh, I cannot find the thread you\'re looking for :/'); } } else { self::errorHTML('Your account level needs to be upgraded! (This is to prevent spam on the forums!), if you are a guild member without access then request to have your account upgraded in game by a site admin.'); } } }