Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Paginator http://forum.kohanaframework.su/viewtopic.php?f=32&t=502 |
Страница 1 из 1 |
Автор: | borodatych [ 17 дек 2012, 00:07 ] |
Заголовок сообщения: | Paginator |
Доброго времени суток. Открыл для себя этот, многими используемый, модуль. Все настроил, прикрутил в тему через вьюшку, все гуд. Сейчас стоит задача следующего характера. На страницу, точнее на инфу, где подключен пагинатор налаживается определенный фильтр, и при переходе на вторую страницу он соответственно сбрасывается. Как я вижу выход: Беру вьюшку пагинатора и все линки/ссылки переделываю на бутоны, нужный путь в форму, параметры в скрытые инпуты. Может есть другой выход? Или этот вполне приемлем? ..я пока не пробовал, просто предпологаю/спрашиваю.. |
Автор: | borodatych [ 17 дек 2012, 00:48 ] |
Заголовок сообщения: | Re: Paginator |
..дополняю.. У меня на страницы, при первом заходе, отображаются, допустим, все пользователи с их описание, по которым и буду фильровать. Преположительно пользователей ==100, пагинатор бъет по 20 записей на страницу, итого 5-ть страниц. Допустим, фильтранул всех менеджеров и их оказалось 30 человек, следовательно пагинатор показал две страницы. Но при переходе на вторую страницу фильтр сбрасывается и показывается вторая страница всех пользователей. Предположив что дело в контроллере, я убрал первый вывод списка пользователей и пагинатор в целом, то есть без фильтра не выводится. Делаю фильтр, получаю 30 записей-> 2-е стрнаицы. Жмакаю вторую, пусто. Как так получается? Что не учел? И куда читать? С уважением, Роман. |
Автор: | Zorato [ 17 дек 2012, 01:13 ] |
Заголовок сообщения: | Re: Paginator |
Вам надо применять пагинатор ДО того как применяете фильтрацию. Т.е. сначала фильтруете, потом закидываете в пагинатор total count и т.п. На самой странице конечно все ссылкам просто добавьте конец параметры фильтрации, так что в контроллере можно будет достать их через $_GET. |
Автор: | borodatych [ 17 дек 2012, 01:39 ] |
Заголовок сообщения: | Re: Paginator |
Простите меня, но вы меня запутали: Zorato писал(а): Вам надо применять пагинатор ДО того как применяете фильтрацию. Zorato писал(а): Т.е. сначала фильтруете, потом закидываете в пагинатор total count и т.п. Как то не вяжется. Я делаю как во второй цитате, если что, не работает.. Теоретически я сделал выборку из базы по параметрам, но при переходе на вторую страницу получаю пусто. Я вижу работу пагинатора - он просто манипулирует массивом, и ему должно быть фиолетово как этот массив получил он, фильтром ли или из конфига, разве нет? Zorato писал(а): На самой странице конечно все ссылкам просто добавьте конец параметры фильтрации, так что в контроллере можно будет достать их через $_GET. Разве не получиться, что я каждый раз по гету буду делать новый(тот же самый) фильтр и попадать на первую страницу? То есть нужно передать что то еще в get, что бы сделать фильтр за вычетом тех данных, которые были на прошлой страницы. ..предположительно число, потом в запросе убрать это кол-во..как то глуповато, да и гет юзать не хотца, зачем запрос светить.. |
Автор: | Zorato [ 18 дек 2012, 03:43 ] |
Заголовок сообщения: | Re: Paginator |
borodatych писал(а): Простите меня, но вы меня запутали Действительно, извините, там должно было быть слово "после". Цитата: Разве не получиться, что я каждый раз по гету буду делать новый(тот же самый) фильтр и попадать на первую страницу? То есть нужно передать что то еще в get, что бы сделать фильтр за вычетом тех данных, которые были на прошлой страницы. ..предположительно число, потом в запросе убрать это кол-во..как то глуповато, да и гет юзать не хотца, зачем запрос светить.. Получиться не должно, у вас после фильтрации запрос в базу должен возвращать одинаковый total count для пагинатора, а пользователь будет запрашивать разные страницы - соответственно пагинатор будет возвращать разный offset для запросов в базу. Если не хотите светить параметры в урле, то храните их в сессии. Единственный минус - пользователь не сможет отправить другу ссылку на 3ю страницу отфильтрованного списка, т.к. все параметры только у него в сессии. |
Автор: | borodatych [ 18 дек 2012, 10:56 ] |
Заголовок сообщения: | Re: Paginator |
Zorato писал(а): Получиться не должно, у вас после фильтрации запрос в базу должен возвращать одинаковый total count для пагинатора, а пользователь будет запрашивать разные страницы - соответственно пагинатор будет возвращать разный offset для запросов в базу. Если не сложно, что такое offset? ..можно линком.. Zorato писал(а): Единственный минус - пользователь не сможет отправить другу ссылку на 3ю страницу отфильтрованного списка, т.к. все параметры только у него в сессии. Пожалуй вы меня убедили поюзать гет. |
Автор: | Zorato [ 19 дек 2012, 01:12 ] |
Заголовок сообщения: | Re: Paginator |
borodatych писал(а): Если не сложно, что такое offset? ..можно линком.. Примерно так: http://www.tigir.com/paging.htm На счет постраничного вывода, я использую примерно такой код для выборки заказов: Код:
Проверьте, может вы не указываете limit или offset. |
Автор: | borodatych [ 19 дек 2012, 08:04 ] |
Заголовок сообщения: | Re: Paginator |
to Zorato Благодарю за пример, но я уже настроил. Воспользовался советом и испоьзовал гет. |
Автор: | borodatych [ 09 фев 2013, 14:04 ] |
Заголовок сообщения: | Re: Paginator |
Доброго времени суток. ..разрешите продолжить... Решил заюзать пагинатор на index контроллере. И получаю такую некрасивость: Код:
Как можно избавиться от этих index/index? Когда юзал в конкретном контроллере, еще смотрелось чуток, к пр: Код:
Конечно можно и сейчас переименовать контроллер, но это не выход, на сколько могу предположить. Может можно как то роутами обыграть? |
Автор: | Zorato [ 10 фев 2013, 01:47 ] |
Заголовок сообщения: | Re: Paginator |
Код:
примерно так |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |