Exemplo n.º 1
0
 /**
  * Инлексная страница
  */
 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);
 }
Exemplo n.º 2
0
 /**
  * Действие для отображения списка новостей
  */
 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);
 }