Шаблон для CListView
Шаблон для CListView
Здравствуйте!
С программирование на yii разбираюсь недавно и тут сразу возник вопрос. Нужно выводить pager внизу таблицы и сверху. Нашел что можно переопределить template для виджета CListView ('template'=>"{summary}\n{pager}\n{items}\n{pager}"). Это все классно, но проект, где это нужно сделать большой и делать это во всех таблицах мне показалось не очень правильно, тем более что в будущем таблиц будет еще больше. Т.о. хотелось бы переопределить виджет CListView где-то в одном месте чтобы все таблицы строились с пейджером внизу и сверху. Может кто подскажет где и как это лучше сделать (желательно с подробным описанием и путем к файлу:))? И кстати хотелось бы чтобы подключение виджета осталось такое как и сейчас "zii.widgets.CListView" - чтоб не менять его везде по всему проекту(если конечно это возможно).
Также нужно реализовать возможность выбора кол-ва отображаемых записей на странице - чтото на подобе itemsPerPageMenu, который использыется в EListView. Но опять же хочется чтоб остался CListView чтоб не менять в куче файлов его. Кто-то может подсказать как лучше сделать это все?
Спасибо.
С программирование на yii разбираюсь недавно и тут сразу возник вопрос. Нужно выводить pager внизу таблицы и сверху. Нашел что можно переопределить template для виджета CListView ('template'=>"{summary}\n{pager}\n{items}\n{pager}"). Это все классно, но проект, где это нужно сделать большой и делать это во всех таблицах мне показалось не очень правильно, тем более что в будущем таблиц будет еще больше. Т.о. хотелось бы переопределить виджет CListView где-то в одном месте чтобы все таблицы строились с пейджером внизу и сверху. Может кто подскажет где и как это лучше сделать (желательно с подробным описанием и путем к файлу:))? И кстати хотелось бы чтобы подключение виджета осталось такое как и сейчас "zii.widgets.CListView" - чтоб не менять его везде по всему проекту(если конечно это возможно).
Также нужно реализовать возможность выбора кол-ва отображаемых записей на странице - чтото на подобе itemsPerPageMenu, который использыется в EListView. Но опять же хочется чтоб остался CListView чтоб не менять в куче файлов его. Кто-то может подсказать как лучше сделать это все?
Спасибо.
Re: Шаблон для CListView
В конфиге
Код: Выделить всё
'components' => array(
'widgetFactory'=>array(
'widgets'=>array(
'CListView' => array(
'template' => "{summary}\n{pager}\n{items}\n{pager}",
)
)
),
Re: Шаблон для CListView
Спасибо! Все отлично заработало:)
А как быть с возможностью выбора кол-ва отображаемых на одной странице записей?
А как быть с возможностью выбора кол-ва отображаемых на одной странице записей?
Re: Шаблон для CListView
Да, в одном месте - это заменить в конфиге или в скине.
А чтобы выводить переменное число элементов на страницу... Проще, всё-таки, отнаследоваться от ClistView и дописать метод renderPagesize(), например, по аналогии с сортером:
Теперь заменить ClistView на ListView и просто подставить '{pagesize}' в шаблон в конфиге:
А в контроллере снимать значение этого параметра:
А чтобы выводить переменное число элементов на страницу... Проще, всё-таки, отнаследоваться от ClistView и дописать метод renderPagesize(), например, по аналогии с сортером:
Код: Выделить всё
class ListView extends ClistView
{
public function renderPagesize()
{
$links = array();
foreach (array(10, 100, 1000) as $count){
$params = array_replace($_GET, array('pageSize'=>$count));
if (isset($params['page'])) unset($params['page']);
$links[] = CHtml::link($count, Yii::app()->controller->createUrl('', $params));
}
echo 'Выводить по: ' . implode(', ', $links);
}
}
Код: Выделить всё
'template' => "{summary}\n{pagesize}\n{pager}\n{items}\n{pager}",
Код: Выделить всё
$dataProvider = new CActiveDataProvider('Model', array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>Yii::app()->request->getQuery('pageSize', 10),
'pageVar'=>'page',
),
));
Последний раз редактировалось ElisDN 2013.05.08, 12:44, всего редактировалось 1 раз.
Re: Шаблон для CListView
Спасибо за ответ! Получилось сделать такую штуку.
Re: Шаблон для CListView
ElisDN, скоро форум будет тупо заполнен ссылками на твой сайт причем тут нет но-рел, но-фоллоу.
Re: Шаблон для CListView
зато человек под делу пишет =)
Агрегатор цен на услуги хостинга - https://hostcost.net
Re: Шаблон для CListView
это называется халявный траффик и самопиар
Re: Шаблон для CListView
Ну включите nofollowSkiller писал(а):ElisDN, скоро форум будет тупо заполнен ссылками на твой сайт причем тут нет но-рел, но-фоллоу.
Re: Шаблон для CListView
lol, ты знаешь для чего оно? причем тут "включите"...? мда...
Re: Шаблон для CListView
Если жалко весомые ссылки раздавать, попросите включить nofollow в админке форума.Skiller писал(а):lol, ты знаешь для чего оно? причем тут "включите"...? мда...
Это называется «убить $150 рабочего времени ради написания классной бесплатной статьи». Весьма халявно?Skiller писал(а):это называется халявный траффик и самопиар
Re: Шаблон для CListView
ох, лол)))