'published', 'sortby' => 'id', 'sortmode' => 'desc', 'limit' => Config::get('metadata.posts_per_page', 10), 'offset' => Input::get('offset', 0) ); $posts = Posts::list_all($params); IoC::instance('posts', $posts, true); $total_posts = Posts::count(array('status' => 'published')); IoC::instance('total_posts', $total_posts, true); } return $posts->length() > 0; } function posts() { if(has_posts() === false) { return false; } $posts = IoC::resolve('posts'); if($result = $posts->valid()) { // register single post IoC::instance('article', $posts->current(), true); // move to next $posts->next(); } return $result; } function posts_next($text = 'Next', $default = '') { $per_page = Config::get('metadata.posts_per_page'); $offset = Input::get('offset', 0); $total = IoC::resolve('total_posts'); $pages = floor($total / $per_page); $page = $offset / $per_page; if($page < $pages) { return '' . $text . ''; } return $default; } function posts_prev($text = 'Previous', $default = '') { $per_page = Config::get('metadata.posts_per_page'); $offset = Input::get('offset', 0); $total = IoC::resolve('total_posts'); $pages = ceil($total / $per_page); $page = $offset / $per_page; if($offset > 0) { return '' . $text . ''; } return $default; }