Версия Yii 1.0.0/1.0.1.
По-умолчанию, класс CPagination формирует ссылку на первую страницу без указания переменной номера страницы, в связи с чем, например, невозможно определить перешёл ли на первую страницу пользователь, или она просто открылась при переходе на страницу. Решений два - либо переопределять функцию createPageUrl() в потомке класса CPagination (Yii 1.0.1):
class CMyPagination extends CPagination
{
public function createPageUrl( $controller, $page )
{
$params=($this->route==='')?$_GET:array();
$params[$this->pageVar]=$page+1;
return $controller->createUrl($this->route,$params);
}
}
, либо изменить сам этот класс (Yii 1.0.0):
--- framework/web/CPagination.php.orig 2009-01-02 20:53:10.000000000 +0300 +++ framework/web/CPagination.php 2009-01-02 20:53:29.000000000 +0300 @@ -125,10 +125,7 @@ public function createPageUrl($controller,$page) { $params=($this->route==='')?$_GET:array(); - if($page>0) // page 0 is the default - $params[$this->pageVar]=$page+1; - else - unset($params[$this->pageVar]); + $params[$this->pageVar]=$page+1; return $controller->createUrl($this->route,$params); } }
Дискуссия