public static function getHomePageList($category_id) { $total = static::where('forumtopics.forumcategory_id', '=', $category_id)->count(); $per_page = Config::get('forums::forums.topics_per_page'); $page = Paginator::page($total, $per_page); $topics = DB::query('SELECT forumtopics.id as id, forumtopics.title as title, forumtopics.slug as slug, forumtopics.nb_messages as nb_messages, forumtopics.nb_views as nb_views, forumtopics.sticky as sticky, forumtopics.created_at as created_at, topicusers.username as topic_username, fm.id as last_message_id, fm.created_at as last_message_date, users.username as last_message_username FROM forumtopics JOIN (SELECT forummessages.id, forummessages.user_id, forummessages.forumtopic_id, forummessages.created_at FROM forummessages ORDER BY forummessages.created_at DESC) as fm ON fm.forumtopic_id = forumtopics.id JOIN users ON fm.user_id = users.id JOIN users as topicusers ON forumtopics.user_id = topicusers.id WHERE forumtopics.forumcategory_id = ? GROUP BY fm.forumtopic_id ORDER BY forumtopics.sticky DESC, fm.created_at DESC LIMIT ' . ($page - 1) * $per_page . ', ' . $per_page, array($category_id)); return Paginator::make($topics, $total, $per_page); }
public function testHTMLOutput() { $paginatorClass = new Paginator(); $records = array(); for ($i = 1; $i <= 100; $i++) { $records['Key ' . $i] = 'Value ' . $i; } $paginator = $paginatorClass->page(4)->perPage(10)->make($records, 'Array'); // Cover foreach, iterator foreach ($paginator as $item) { } $expected = '<ul class="pagination"><li class="prev"><a href="?page=3">«</a></li><li class=""><a href="?page=2">2</a></li><li class=""><a href="?page=3">3</a></li><li class="active current"><a href="?page=4">4</a></li><li class=""><a href="?page=5">5</a></li><li class=""><a href="?page=6">6</a></li><li class="next"><a href="?page=5">»</a></li></ul>'; $this->assertEquals($expected, (string) $paginator); }