Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Модуль Pagination
http://forum.kohanaframework.su/viewtopic.php?f=31&t=148
Страница 1 из 7

Автор:  dimaua2 [ 01 май 2012, 23:56 ]
Заголовок сообщения:  Модуль Pagination

http://kohanaframework.su/modules/pagination

Несовсем понял

во первых который ротер ставить?

Route::set('allcategory', 'category(/<page>)', array('page' => '[0-9]+'))
->defaults(array(
'controller' => 'category',
'action' => 'index',
));

Route::set('category', 'category(/<id>-<catname>(/<page>))', array('id' => '[0-9]+'), array('page' => '[0-9]+'))
->defaults(array(
'controller' => 'category',
'action' => 'index',
));


и что писать в контролер (и делать новый? или в какой то вставить?)
$total_items = 100; //Это вы как будто посчитали количество элементов
$content->pagination = Pagination::factory(array('total_items' => $total_items));

хочу что бы на странице в админке по странично выводились пользователи
вот ссылка
http://thesupport.info/admin/users/list.html
пасс admin логин admin@thesupport.info
и хочу что бы в разделе материалы http://thesupport.info/materials.html
тоже было по странично, но у меня не выходит его настроить

Автор:  admin [ 02 май 2012, 01:58 ]
Заголовок сообщения:  Re: Модуль Pagination

Сайт на Кохане ?
Роут для страницы, которая выводит пользователей, покажите.

Автор:  dimaua2 [ 02 май 2012, 02:08 ]
Заголовок сообщения:  Re: Модуль Pagination

Да на кохане.
я так понял вы за это

Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))(.html)')
->defaults(array(
'directory' => 'admin',
'controller' => 'main',
'action' => 'index',
));

Route::set('loginform', 'loginform(/<id>)(.html)')
->defaults(array(
'controller' => 'loginform',
'action' => 'index',
));


Route::set('pagination', 'pagination(/<category>(/<page>))')
->defaults(array(
'controller' => 'pagination',
'action' => 'index',

));


Route::set('default', '(<controller>(/<action>(/<id>(/<id2>))))(.html)')
->defaults(array(
'controller' => 'main',
'action' => 'index',
));


тут все роутеры, что записаны в бутстрап
с ротером я вроде разобрался...вот он(что я добавил)


Route::set('pagination', 'pagination(/<category>(/<page>))')
->defaults(array(
'controller' => 'pagination',
'action' => 'index',

));

я просто не знаю, что написать в контролер, что бы осущетсвил то что мне надо

Автор:  admin [ 02 май 2012, 02:22 ]
Заголовок сообщения:  Re: Модуль Pagination

Скорее этот
Код:
Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))(.html)')
 ->defaults(array(
 'directory' => 'admin',
 'controller' => 'main',
 'action' => 'index',
 ));


Для ссылки
http://thesupport.info/admin/users/list.html

И как вы хотите, чтобы адресная строка выглядела ? В ней надо будет передавать номер страницы.

Автор:  dimaua2 [ 02 май 2012, 02:35 ]
Заголовок сообщения:  Re: Модуль Pagination

1) примерно так http://thesupport.info/admin/users/list/page2.html
2)
'directory' => 'admin',
'controller' => 'main',

так дериктория у меня не контролер/админ/...
а сразу в контролере лежит и сам контролер по другому называется, или я что-то путаю?
то есть мне не нужнно делать новый контроллер?
просто смотрю уроки по кохане и немного запутался (сайты делать умею, но сейчас захотел делать самописные вот и начал учить (учу около месяца))

Автор:  dimaua2 [ 02 май 2012, 02:39 ]
Заголовок сообщения:  Re: Модуль Pagination

да и если меняю роут как вы дали
и делаю вывод как в статье то мне выдает ошибку
ErrorException [ Notice ]: Undefined variable: pagination

Автор:  admin [ 02 май 2012, 04:14 ]
Заголовок сообщения:  Re: Модуль Pagination

это
Код:
Route::set('pagination', 'pagination(/<category>(/<page>))')
 ->defaults(array(
 'controller' => 'pagination',
 'action' => 'index',

 ));

убрать

Цитата:
1) примерно так http://thesupport.info/admin/users/list/page2.html
2)
'directory' => 'admin',
'controller' => 'main',

так дериктория у меня не контролер/админ/...
а сразу в контролере лежит и сам контролер по другому называется, или я что-то путаю?
то есть мне не нужнно делать новый контроллер?


Новый контроллер делать не нужно. Нужно дописать старый. Осталось понять какой.
Внутри папки admin есть файл users.php , а в нем метод action_list ?

Автор:  AzEXx [ 02 май 2012, 10:46 ]
Заголовок сообщения:  Re: Модуль Pagination

не в тему:dimaua2, в скрипт вставляй такую кнопочку
Код:
Code
просто так удобней читать его))

Автор:  dimaua2 [ 02 май 2012, 13:53 ]
Заголовок сообщения:  Re: Модуль Pagination

так смотрите
я свой роут убрал написал ваш
Код:
Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))(.html)')
 ->defaults(array(
 'directory' => 'admin',
 'controller' => 'main',
 'action' => 'index',
 ));


да вы правы....
вт содержание того актиона

Код:
   public function action_list()
   {
      $data = array();
      $filter = Session::instance()->get('userlistFilter', array());
      
      $user = ORM::factory('user');
      
      if ($this->isPressed('btnFilter'))
      {
         $filter['FIO']      = trim(Arr::get($_POST, 'FIO'));
         $filter['role']     = trim(Arr::get($_POST, 'role'));
         $filter['isActive'] = trim(Arr::get($_POST, 'isActive'));
         $filter['note']     = trim(Arr::get($_POST, 'note'));
         
         foreach ($filter as $key => $value)
         {
            if ($value == '')
               unset($filter[$key]);
         }
         
         Session::instance()->set('userlistFilter', $filter);
      }
      
      if ($this->isPressed('btnDelete'))
      {
         $idList = Arr::get($_POST, 'cb', array());
         foreach ($idList as $id => $value)
         {
            $user = ORM::factory('user', $id);
            $user->delete();
         }
      }
      
      $user = ORM::factory('user');
      
      $data['users'] = $user->getUserList($filter);
      $data['notes'] = $user->getDistinctNotes();
      $data['filter'] = $filter;
      
      $this->tpl->content =  View::factory('admin/userlist', $data);
   }

подскажите пожалуйста, что нужно дописать

Автор:  admin [ 02 май 2012, 14:50 ]
Заголовок сообщения:  Re: Модуль Pagination

Насколько я вижу id из адресной строки никак не используется в этом методе, но в других наверное используется, поэтому видимо лучше сделать все-таки отдельный роут. Над старым (обязательно выше)пишем что-то такое:
Код:
Route::set('admin', 'admin/users/list(/page<id>)(.html)')
 ->defaults(array(
 'directory' => 'admin',
 'controller' => 'users',
 'action' => 'list',
 ));


В контроллере получаем этот номер страницы
Код:
$this->request->param('id');


Далее считаем количество пользователей и получаем их список исходя из id, т.е. номера страницы (количество страниц зависит от количества пользователей и количества вывода на одну страницу).

Страница 1 из 7 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/