Шаблон для CListView

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
artyom
Сообщения: 3
Зарегистрирован: 2013.04.29, 17:30

Шаблон для CListView

Сообщение artyom »

Здравствуйте!

С программирование на yii разбираюсь недавно и тут сразу возник вопрос. Нужно выводить pager внизу таблицы и сверху. Нашел что можно переопределить template для виджета CListView ('template'=>"{summary}\n{pager}\n{items}\n{pager}"). Это все классно, но проект, где это нужно сделать большой и делать это во всех таблицах мне показалось не очень правильно, тем более что в будущем таблиц будет еще больше. Т.о. хотелось бы переопределить виджет CListView где-то в одном месте чтобы все таблицы строились с пейджером внизу и сверху. Может кто подскажет где и как это лучше сделать (желательно с подробным описанием и путем к файлу:))? И кстати хотелось бы чтобы подключение виджета осталось такое как и сейчас "zii.widgets.CListView" - чтоб не менять его везде по всему проекту(если конечно это возможно).

Также нужно реализовать возможность выбора кол-ва отображаемых записей на странице - чтото на подобе itemsPerPageMenu, который использыется в EListView. Но опять же хочется чтоб остался CListView чтоб не менять в куче файлов его. Кто-то может подсказать как лучше сделать это все?

Спасибо.
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Шаблон для CListView

Сообщение rak »

В конфиге

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

'components'     => array(
                'widgetFactory'=>array(
                    'widgets'=>array(
                        'CListView' => array(
                           'template' =>  "{summary}\n{pager}\n{items}\n{pager}",
                        )
                    )
                ),
 
artyom
Сообщения: 3
Зарегистрирован: 2013.04.29, 17:30

Re: Шаблон для CListView

Сообщение artyom »

Спасибо! Все отлично заработало:)

А как быть с возможностью выбора кол-ва отображаемых на одной странице записей?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Шаблон для CListView

Сообщение ElisDN »

Да, в одном месте - это заменить в конфиге или в скине.

А чтобы выводить переменное число элементов на страницу... Проще, всё-таки, отнаследоваться от 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);
    }
}
Теперь заменить ClistView на ListView и просто подставить '{pagesize}' в шаблон в конфиге:

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

'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 раз.
artyom
Сообщения: 3
Зарегистрирован: 2013.04.29, 17:30

Re: Шаблон для CListView

Сообщение artyom »

Спасибо за ответ! Получилось сделать такую штуку.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Шаблон для CListView

Сообщение Skiller »

ElisDN, скоро форум будет тупо заполнен ссылками на твой сайт ;) причем тут нет но-рел, но-фоллоу.
Аватара пользователя
howard
Сообщения: 528
Зарегистрирован: 2012.11.16, 18:55
Откуда: Україна, Вінниця

Re: Шаблон для CListView

Сообщение howard »

зато человек под делу пишет =)
Агрегатор цен на услуги хостинга - https://hostcost.net
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Шаблон для CListView

Сообщение Skiller »

это называется халявный траффик и самопиар :D
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Шаблон для CListView

Сообщение ElisDN »

Skiller писал(а):ElisDN, скоро форум будет тупо заполнен ссылками на твой сайт ;) причем тут нет но-рел, но-фоллоу.
Ну включите nofollow
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Шаблон для CListView

Сообщение Skiller »

lol, ты знаешь для чего оно? причем тут "включите"...? мда...
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Шаблон для CListView

Сообщение ElisDN »

Skiller писал(а):lol, ты знаешь для чего оно? причем тут "включите"...? мда...
Если жалко весомые ссылки раздавать, попросите включить nofollow в админке форума.
Skiller писал(а):это называется халявный траффик и самопиар :D
Это называется «убить $150 рабочего времени ради написания классной бесплатной статьи». Весьма халявно?
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Шаблон для CListView

Сообщение Skiller »

ох, лол)))
Ответить