Spec-Zone.ru › Yii 1.1

CPagination

Пакет system.web
Наследование class CPagination » CComponent
С версии 1.0
Исходный код framework/web/CPagination.php
CPagination представляет информацию, относящуюся к пагинации.

Когда данные необходимо отобразить на нескольких страницах, можно использовать CPagination для представления информации, такой как общее количество элементов, размер страницы, текущая страница и т. д. Эту информацию можно передать пагинаторам для отображения кнопок или ссылок пагинации.

Пример:

Действие контроллера:
function actionIndex(){
    $criteria=new CDbCriteria();
    $count=Article::model()->count($criteria);
    $pages=new CPagination($count);

    // results per page
    $pages->pageSize=10;
    $pages->applyLimit($criteria);
    $models=Article::model()->findAll($criteria);

    $this->render('index', array(
    'models' => $models,
         'pages' => $pages
    ));
}


Представление:
<?php foreach($models as $model): ?>
    // display a model
<?php endforeach; ?>

// display pagination
<?php $this->widget('CLinkPager', array(
    'pages' => $pages,
)) ?>

Свойства Public

Свойство Тип Описание Определено
currentPage целое число индекс текущей страницы (нумерация с нуля). CPagination
itemCount целое число общее количество элементов. CPagination
limit целое число предел данных. CPagination
offset целое число смещение данных. CPagination
pageCount целое число количество страниц CPagination
pageSize целое число количество элементов на странице. CPagination
pageVar строка имя GET-переменной, хранящей индекс текущей страницы. CPagination
params массив параметры (имя=>значение), которые следует использовать вместо GET при генерации URL-адресов пагинации. CPagination
route строка маршрут (ID контроллера и ID действия) для отображения страниц с данными. CPagination
validateCurrentPage булево указывается ли, что currentPage возвращает допустимый номер страницы. CPagination

Public Methods

Метод Описание Определено
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__construct() Конструктор. CPagination
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
applyLimit() Применяет LIMIT и OFFSET к указанным критериям запроса. CPagination
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Присоединяет поведение к компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик события к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
createPageUrl() Создает URL, подходящий для пагинации. CPagination
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик события. CComponent
disableBehavior() Отключает присоединенное поведение. CComponent
disableBehaviors() Отключает все присоединенные к этому компоненту поведения. CComponent
enableBehavior() Включает присоединенное поведение. CComponent
enableBehaviors() Включает все присоединенные к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. CComponent
getCurrentPage() Возвращает индекс текущей страницы (нумерация с нуля). По умолчанию 0. CPagination
getEventHandlers() Возвращает список присоединенных обработчиков событий для события. CComponent
getItemCount() Возвращает общее количество элементов. По умолчанию 0. CPagination
getLimit() Возвращает предел данных. Это может быть использовано для установки значения LIMIT для SQL-запроса, для извлечения текущей страницы данных. Возвращает то же значение, что и pageSize. CPagination
getOffset() Возвращает смещение данных. Это может быть использовано для установки значения OFFSET для SQL-запроса, для извлечения текущей страницы данных. CPagination
getPageCount() Возвращает количество страниц. CPagination
getPageSize() Возвращает количество элементов на странице. По умолчанию 10. CPagination
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли для события присоединенные обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
setCurrentPage() Устанавливает индекс текущей страницы (нумерация с нуля). CPagination
setItemCount() Устанавливает общее количество элементов. CPagination
setPageSize() Устанавливает количество элементов на странице. CPagination

Подробное описание свойств

currentPage свойство

public integer getCurrentPage(boolean $recalculate=true)
public void setCurrentPage(integer $value)

индекс текущей страницы (нумерация с нуля). По умолчанию 0.

itemCount свойство

public integer getItemCount()
public void setItemCount(integer $value)

общее количество элементов. По умолчанию 0.

limit свойство только для чтения (доступно с версии v1.1.0)

public integer getLimit()

предел данных. Может быть использован для установки значения LIMIT для SQL-запроса, чтобы получить текущую страницу данных. Возвращает то же значение, что и pageSize.

offset свойство только для чтения (доступно с версии v1.1.0)

public integer getOffset()

смещение данных. Может быть использовано для установки значения OFFSET в SQL-запросе для извлечения текущей страницы данных.

pageCount свойство только для чтения

public integer getPageCount()

количество страниц

pageSize свойство

public integer getPageSize()
public void setPageSize(integer $value)

количество элементов на странице. По умолчанию 10.

pageVar свойство

public string $pageVar;

имя переменной GET, хранящей индекс текущей страницы. По умолчанию 'page'.

params свойство

public array $params;

параметры (имя=>значение), которые следует использовать вместо GET при генерации URL-адресов пагинации. По умолчанию null, что означает использование имеющихся GET-параметров.

route свойство

public string $route;

маршрут (ID контроллера и ID действия) для отображения постраничного содержимого. По умолчанию пустая строка, что означает использование текущего маршрута.

validateCurrentPage свойство (доступно с версии v1.1.4)

public boolean $validateCurrentPage;

необходимо ли гарантировать, что currentPage возвращает допустимый номер страницы. Когда это свойство истинно, значение, возвращаемое currentPage, всегда будет между 0 и (pageCount-1). Поскольку pageCount зависит от правильного значения itemCount, это означает, что вам необходимо знать общее количество элементов данных, когда вы хотите получить доступ к currentPage. Это подходит для запросов на основе SQL, но может быть нецелесообразно для других типов запросов (например, MongoDB). В таких случаях вы можете установить это свойство в false, чтобы пропустить проверку (тогда вам нужно будет выполнить проверку самостоятельно). По умолчанию значение true.

Подробное описание методов

__construct() метод

public void __construct(integer $itemCount=0)
$itemCount целое число общее количество элементов.
Исходный код: framework/web/CPagination.php#107 (показать)
public function __construct($itemCount=0)
{
    
$this->setItemCount($itemCount);
}

Конструктор.

applyLimit() метод

public void applyLimit(CDbCriteria $criteria)
$criteria CDbCriteria критерии запроса, которые должны быть применены с ограничением
Исходный код: framework/web/CPagination.php#214 (показать)
public function applyLimit($criteria)
{
    
$criteria->limit=$this->getLimit();
    
$criteria->offset=$this->getOffset();
}

Применяет LIMIT и OFFSET к указанным критериям запроса.

createPageUrl() метод

public string createPageUrl(CController $controller, integer $page)
$controller CController контроллер, который создаст фактический URL-адрес
$page целое число страница, на которую должен указывать URL-адрес. Это индекс с нуля.
{return} строка созданный URL-адрес
Исходный код: framework/web/CPagination.php#200 (показать)
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;
    else
        unset(
$params[$this->pageVar]);
    return 
$controller->createUrl($this->route,$params);
}

Создает URL-адрес, подходящий для пагинации. Этот метод главным образом вызывается паджинаторами при создании URL-адресов, используемых для пагинации. По умолчанию вызывается метод createUrl контроллера с информацией о странице. Вы можете переопределить этот метод, если ваша схема URL-адресов не такая, как поддерживается методом createUrl контроллера.

getCurrentPage() метод

public integer getCurrentPage(boolean $recalculate=true)
$recalculate логическое значение необходимо ли пересчитывать текущую страницу на основе размера страницы и количества элементов.
{return} целое число индекс текущей страницы с нуля. По умолчанию 0.
Исходный код: framework/web/CPagination.php#158 (показать)
public function getCurrentPage($recalculate=true)
{
    if(
$this->_currentPage===null || $recalculate)
    {
        if(isset(
$_GET[$this->pageVar]))
        {
            
$this->_currentPage=(int)$_GET[$this->pageVar]-1;
            if(
$this->validateCurrentPage)
            {
                
$pageCount=$this->getPageCount();
                if(
$this->_currentPage>=$pageCount)
                    
$this->_currentPage=$pageCount-1;
            }
            if(
$this->_currentPage<0)
                
$this->_currentPage=0;
        }
        else
            
$this->_currentPage=0;
    }
    return 
$this->_currentPage;
}

getItemCount() метод

public integer getItemCount()
{return} целое число общее количество элементов. По умолчанию 0.
Исходный код: framework/web/CPagination.php#132 (показать)
public function getItemCount()
{
    return 
$this->_itemCount;
}

getLimit() метод (доступно с версии v1.1.0)

public integer getLimit()
{return} целое число ограничение данных. Может быть использовано для установки значения LIMIT в SQL-запросе для извлечения текущей страницы данных. Возвращает то же значение, что и pageSize.
Исходный код: framework/web/CPagination.php#236 (показать)
public function getLimit()
{
    return 
$this->getPageSize();
}

getOffset() метод (доступно с версии v1.1.0)

public integer getOffset()
{return} целое число смещение данных. Может быть использовано для установки значения OFFSET в SQL-запросе для извлечения текущей страницы данных.
Исходный код: framework/web/CPagination.php#225 (показать)
public function getOffset()
{
    return 
$this->getCurrentPage()*$this->getPageSize();
}

getPageCount() метод

public integer getPageCount()
{return} целое число количество страниц
Исходный код: framework/web/CPagination.php#149 (показать)
public function getPageCount()
{
    return (int)((
$this->_itemCount+$this->_pageSize-1)/$this->_pageSize);
}

getPageSize() метод

public integer getPageSize()
{return} целое число количество элементов на каждой странице. По умолчанию 10.
Исходный код: framework/web/CPagination.php#115 (показать)
public function getPageSize()
{
    return 
$this->_pageSize;
}

setCurrentPage() метод

public void setCurrentPage(integer $value)
$value целое число индекс текущей страницы с нуля.
Исходный код: framework/web/CPagination.php#183 (показать)
public function setCurrentPage($value)
{
    
$this->_currentPage=$value;
    
$_GET[$this->pageVar]=$value+1;
}

setItemCount() метод

public void setItemCount(integer $value)
$value целое число общее количество элементов.
Исходный код: framework/web/CPagination.php#140 (показать)
public function setItemCount($value)
{
    if((
$this->_itemCount=$value)<0)
        
$this->_itemCount=0;
}

setPageSize() метод

public void setPageSize(integer $value)
$value целое число количество элементов на каждой странице
Исходный код: framework/web/CPagination.php#123 (показать)
public function setPageSize($value)
{
    if((
$this->_pageSize=$value)<=0)
        
$this->_pageSize=self::DEFAULT_PAGE_SIZE;
}

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CPagination

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API