Pagination

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
justice
Сообщения: 31
Зарегистрирован: 2011.02.23, 00:31

Pagination

Сообщение justice »

Приветствую!

Есть виджет CListView который выводит на страницу статьи по 10 штук.
Нужно чтобы при клике на статью отображалась статья, а внизу кнопки для листания статей по одной.
Не могу понять как это сделать?
Как указать пагинатору смещение и где взять номер текущей статьи в этой пагинации?

Благодарен за любые ответы!
Feci quod potui,faciant meliora potentes
lnghost
Сообщения: 134
Зарегистрирован: 2011.07.26, 18:05
Откуда: Воронеж
Контактная информация:

Re: Pagination

Сообщение lnghost »

Вам нужно по сути:
1. при отображении статьи выбрать все статьи
2. в CActiveDataProvider pagination указать pageSize=>1
3. Просчитать, какая по порядку текущая статья (если листалка не начинает с нее).
4. Указать в CActiveDataProvider pagination currentPage=>_то_что_высчитали_

Upd: в конференции недавно обсуждали вопрос, как проще всего узнать, на какой странице элемент. Но кто обсуждал и чем закончилось, не помню. Попробуйте спросите, мб подскажут.
Конференция: yii@conference.jabber.ru Сайт: http://kamaran.ru
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Re: Pagination

Сообщение andreyrud »

Кстати, Pagination работает только с CListView и CGridView? Ему нужен CActiveDataProvider? Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой. Через CArrayDataProvider. Как при этом не потерять возможности сортировки, поиска и пагинации? Писать все руками или можно прикрутить всетаки Pagination?
Есть ли где-то такой табличный грид?
lnghost
Сообщения: 134
Зарегистрирован: 2011.07.26, 18:05
Откуда: Воронеж
Контактная информация:

Re: Pagination

Сообщение lnghost »

andreyrud писал(а):Кстати, Pagination работает только с CListView и CGridView? Ему нужен CActiveDataProvider? Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой. Через CArrayDataProvider. Как при этом не потерять возможности сортировки, поиска и пагинации? Писать все руками или можно прикрутить всетаки Pagination?
Есть ли где-то такой табличный грид?
Pagination - это часть CArrayDataProvider. Попробуйте в эту сторону посмотреть. Генерялка страниц наверняка есть в коробке, правда сам я ни разу ей вне коробочных виджетов не пользовался.
Конференция: yii@conference.jabber.ru Сайт: http://kamaran.ru
maschingan
Сообщения: 75
Зарегистрирован: 2011.01.20, 23:52

Re: Pagination

Сообщение maschingan »

В описании CPagination есть пример использования. По моему как раз то что вам нужно.
http://www.yiiframework.com/doc/api/1.1/CPagination
http://www.yiiframework.com/doc/api/1.1/CBasePager
Choo
Сообщения: 154
Зарегистрирован: 2011.09.20, 22:58

Re: Pagination

Сообщение Choo »

Можно и без CListView и CGridView, воспользоваться CLinkPager, но он довольно косячный и не очень гибкий.
byteasdf
Сообщения: 99
Зарегистрирован: 2010.09.15, 09:01

Re: Pagination

Сообщение byteasdf »

Choo писал(а):Можно и без CListView и CGridView, воспользоваться CLinkPager, но он довольно косячный и не очень гибкий.
Вы будете смеяться, но CListView и CGridView по умолчанию как раз используют CLinkPager.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Pagination

Сообщение samdark »

Вот примерчик на тему: http://rmcreative.ru/blog/post/postrani ... ivka-v-yii
Vic
Сообщения: 109
Зарегистрирован: 2010.03.12, 01:55

Re: Pagination

Сообщение Vic »

andreyrud писал(а):Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой.
Есть ли где-то такой табличный грид?
Почему именно табличный?
Берем стандартный _view и там на <div class="view"> добавляем
style="float: left; width: 200px; height: 200px; margin 15px;"

и получаем элементы квадратами.
На каждый пятый (третий, седьмой, ...) добавляем clear: left;

Возможно придется еще что-нибудь добавить, мог ошибиться, но идея должна быть ясна.
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Re: Pagination

Сообщение andreyrud »

Vic писал(а):
andreyrud писал(а): Почему именно табличный?
Берем стандартный _view и там на <div class="view"> добавляем
style="float: left; width: 200px; height: 200px; margin 15px;"

и получаем элементы квадратами.
На каждый пятый (третий, седьмой, ...) добавляем clear: left;
А откуда взять информацию что данный элемент пятый(третий, седьмой, ...)? А самое главное последний из показанных на странице. Те нужнен сount - число показанных элементов на странице с учетом пагинации и row - номер текущего элемента.
Аватара пользователя
Roksalana
Сообщения: 215
Зарегистрирован: 2014.01.14, 09:34

Re: Pagination

Сообщение Roksalana »

Sam Dark писал(а):Вот примерчик на тему: http://rmcreative.ru/blog/post/postrani ... ivka-v-yii

Код: Выделить всё

$count=Article::model()->count($criteria); 
А как применить count если у меня объединение таблиц?
 Article::model()->with('same_table')->count($criteria)  
Ответить