Ruganin
(Ruganin)
1
Есть вопрос решение пока не нашел.
Известный пример блога создает url http://blog/post/index/
из-за того что модель post и экшен index указаны дефолтными главная страница выглядит как http://blog
однако пагинатор разумеется выдает:
http://blog/post/index/ <= стр2 => http://blog/post/index/page/3
Вопрос: как в url манагере задать правило которое заставит пагинатор выдавать:
http://blog/ <= стр2 => http://blog/post/index/page/3
Rsol
(Slava Rudnev)
2
Попробуйте переопределить функцию CPagination.
К примеру, таким способом:
public function createPageUrl($controller,$page)
{
$params=$this->params===null ? $_GET : $this->params;
if($page>1) // page 0 is the default
$params[$this->pageVar]=$page+1;
else
unset($params[$this->pageVar]);
return $controller->createUrl($this->route,$params);
}
Должно помочь.
Ruganin
(Ruganin)
3
Попробовал переопределить так:
public function createPageUrl($controller,$page)
{
$params=$this->params===null ? $_GET : $this->params;
if($page>0){ // page 0 is the default
$params[$this->pageVar]=$page+1;
$url = $controller->createUrl($this->route,$params);
}else{
$url = Yii::app()->homeUrl;
}
return $url;
}
Не знаю на сколько это правильно.
Но за идею и наводку спасибо.
Да а следом вопрос как модифицировать данный класс что бы и тайтл для пагинатора выглядил как:
$this->pageTitle = Yii::app()->name . 'Страница '. НОМЕР_СТРАНИЦЫ;
Или это надо вьюху как то править?
Rsol
(Slava Rudnev)
4
Как идея передать в него параметр "контроллер" и с ним уже баловаться, а можно вообще
Yii::app()->getController()->pageTitle..