/** * Инлексная страница */ public function action_index() { // Если была отправлена форма фильтрации или сортировка if (\Input::method() == 'POST') { $category_id = (int) \Input::post('category_id'); if ($category_id > 0) { \Session::set('filter_articles_category_id', $category_id); } else { \Session::set('filter_articles_category_id', null); } $title = trim(\Input::post('title')); \Session::set('filter_articles_title', $title); // Сортировка \Session::set('admin_articles_order_by', \Input::post('order_by', 'id')); \Session::set('admin_articles_order_method', \Input::post('order_method', 'desc')); } // Запрос на извлечение кол-ва статей $count = \Model_Article::get_articles_count(\Session::get('filter_articles_title'), \Session::get('filter_articles_category_id')); // Пагинация $config = array('pagination_url' => \URI::create('admin/articles/index'), 'total_items' => $count, 'per_page' => 15, 'uri_segment' => 4); $pagination = \Pagination::forge('articles_pagination', $config); $data['pagination'] = $pagination->render(); // Передаём в представление данные пагинации (для нумерации статей) $data['current_page'] = is_null($pagination->current_page) ? 1 : $pagination->current_page; $data['per_page'] = $pagination->per_page; // Получение статей $data['articles'] = \Model_Article::get_articles(\Session::get('filter_articles_title'), \Session::get('filter_articles_category_id'), $pagination->per_page, $pagination->offset, \Session::get('admin_articles_order_by', 'id'), \Session::get('admin_articles_order_method', 'desc')); // Категории статей $data['categories'] = \Model_Category::get_categories_for_select(); $this->template->title = "Статьи"; $this->template->content = \View::forge('articles/index', $data, false); }
/** * Действие для отображения списка новостей */ public function action_index() { // Запрос на извлечение количества статей $count = \Model_Article::get_articles_count(NULL, $this->category_id); // Пагинация $config = array('pagination_url' => \URI::create("news/{$this->uri}/page"), 'total_items' => $count, 'per_page' => 6, 'uri_segment' => 4); $pagination = \Pagination::forge('news_pagination', $config); $data['pagination'] = $pagination->render(); // Получение статей $data['articles'] = \Model_Article::get_articles('', $this->category_id, $pagination->per_page, $pagination->offset); $this->template->content = \View::forge('articles/index', $data, FALSE); }