Не могу найти представление пагинатора - подскажите есть оно вообще или надо в коде править
Не могу найти представление пагинатора - подскажите есть оно вообще или надо в коде править
Представление (а точнее стили), которое править НЕ надо, находится по адресу: yii/framework/web/widgets/pagers/pager.css. Но его можно взять за основу для своего CSS или в своем CSS изменить необходимые свойства. Я не использую отдельный файл для пагинатора, поэтому выставляю ему свойство cssFile в false, а стили помещаю в основной CSS файл.
Не черкнете строчку кода как выставить это свойство - я совсем новый в этой идеологии
Значения свойств передаются виджету при его инициализации:
Если вы используете просто CLinkPager:
$this->widget('CLinkPager', array(
'pages'=>$pages,
'firstPageLabel'=>'<<',
'prevPageLabel'=>'<',
'nextPageLabel'=>'>',
'lastPageLabel'=>'>>',
'cssFile'=>false
));
При использовании CActiveDataProvider + CGridView:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'pager'=>array('cssFile'=>false, 'lastPageLabel'=>'My Last Page', ...),
));
Спасибо, попробую
$this->widget(‘zii.widgets.CListView’, array(
'dataProvider'=>$dataProvider,
'itemView'=>'_list_view',
'pager'=>array('cssFile'=>false,
'firstPageLabel'=>'first',
'prevPageLabel'=>'prev',
'nextPageLabel'=>'next',
'lastPageLabel'=>'last',
),
'sortableAttributes'=>array(
'company',
),
));
?>
у меня получается что в независимости от cssFile false/true - pager.css копируется в asset.
Я поставил “cssFile” в false, почистил assets, после перезагрузки страницы pager.css не инклюдится и в папку assets файл не копируется
да это я напутал - у меня два виджета - у одного поменял у другого забыл вот и получалась ерунда. спасибо
а я правильно понял что cssFile=false не подключает свой родной файл в assets ?
Правильно. Но проверить это не долго
А если же всё таки нужно помнять html код который вовзвращает пагинатор. Как быть в таком случае?
Перегружать стандартные методы.
вот так
class myLinkPager extends CLinkPager
{
const CSS_SELECTED_PAGE='pselected';
public function run()
{
$buttons=$this->createPageButtons();
if(empty($buttons))
return;
$this->registerClientScript();
echo $this->header;
echo CHtml::tag('div',$this->htmlOptions,implode('',$buttons));
echo '<div class="stopfloat"></div>';
echo $this->footer;
}
protected function createPageButton($label,$page,$class,$hidden,$selected)
{
if($hidden || $selected)
$class.=' '.($hidden ? self::CSS_HIDDEN_PAGE : self::CSS_SELECTED_PAGE);
return '<div class="'.$class.'"><div class="rlpage"></div><div class="innerblockpage">'.CHtml::link($label,$this->createPageUrl($page)).'</div><div class="rlpage"></div></div>';
}
}
а виджите указываете класс