0 follower

CPagination

Package system.web
Inheritance class CPagination » CComponent
Since 1.0
Version $Id$
Source Code framework/web/CPagination.php
CPagination represents information relevant to pagination.

When data needs to be rendered in multiple pages, we can use CPagination to represent information such as total item count, page size, current page, etc. These information can be passed to pagers to render pagination buttons or links.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
currentPage integer the zero-based index of the current page. CPagination
itemCount integer total number of items. CPagination
pageCount integer number of pages CPagination
pageSize integer number of items in each page. CPagination
pageVar string name of the GET variable storing the current page index. CPagination
params array the additional GET parameters (name=>value) that should be used when generating pagination URLs. CPagination
route string the route (controller ID and action ID) for displaying the paged contents. CPagination

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CPagination
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
applyLimit() Applies LIMIT and OFFSET to the specified query criteria. CPagination
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
createPageUrl() Creates the URL suitable for pagination. CPagination
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
getCurrentPage() Returns the zero-based index of the current page. Defaults to 0. CPagination
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getItemCount() Returns total number of items. Defaults to 0. CPagination
getPageCount() Returns number of pages CPagination
getPageSize() Returns number of items in each page. Defaults to 10. CPagination
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
raiseEvent() Raises an event. CComponent
setCurrentPage() Sets the zero-based index of the current page. CPagination
setItemCount() Sets total number of items. CPagination
setPageSize() Sets number of items in each page CPagination

Property Details

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

the zero-based index of the current page. Defaults to 0.

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

total number of items. Defaults to 0.

pageCount property read-only
public integer getPageCount()

number of pages

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

number of items in each page. Defaults to 10.

pageVar property
public string $pageVar;

name of the GET variable storing the current page index. Defaults to 'page'.

params property (available since v1.0.9)
public array $params;

the additional GET parameters (name=>value) that should be used when generating pagination URLs. Defaults to null, meaning using the currently available GET parameters.

route property
public string $route;

the route (controller ID and action ID) for displaying the paged contents. Defaults to empty string, meaning using the current route.

Method Details

__construct() method (available since v1.0.1)
public void __construct(integer $itemCount=0)
$itemCount integer total number of items.
Source Code: framework/web/CPagination.php#57 (show)
public function __construct($itemCount=0)
{
    
$this->setItemCount($itemCount);
}

Constructor.

applyLimit() method (available since v1.0.1)
public void applyLimit(CDbCriteria $criteria)
$criteria CDbCriteria the query criteria that should be applied with the limit
Source Code: framework/web/CPagination.php#162 (show)
public function applyLimit($criteria)
{
    
$criteria->limit=$this->pageSize;
    
$criteria->offset=$this->currentPage*$this->pageSize;
}

Applies LIMIT and OFFSET to the specified query criteria.

createPageUrl() method
public string createPageUrl(CController $controller, integer $page)
$controller CController the controller that will create the actual URL
$page integer the page that the URL should point to. This is a zero-based index.
{return} string the created URL
Source Code: framework/web/CPagination.php#147 (show)
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);
}

Creates the URL suitable for pagination. This method is mainly called by pagers when creating URLs used to perform pagination. The default implementation is to call the controller's createUrl method with the page information. You may override this method if your URL scheme is not the same as the one supported by the controller's createUrl method.

getCurrentPage() method
public integer getCurrentPage(boolean $recalculate=true)
$recalculate boolean whether to recalculate the current page based on the page size and item count.
{return} integer the zero-based index of the current page. Defaults to 0.
Source Code: framework/web/CPagination.php#108 (show)
public function getCurrentPage($recalculate=true)
{
    if(
$this->_currentPage===null || $recalculate)
    {
        if(isset(
$_GET[$this->pageVar]))
        {
            
$this->_currentPage=(int)$_GET[$this->pageVar]-1;
            
$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() method
public integer getItemCount()
{return} integer total number of items. Defaults to 0.
Source Code: framework/web/CPagination.php#82 (show)
public function getItemCount()
{
    return 
$this->_itemCount;
}

getPageCount() method
public integer getPageCount()
{return} integer number of pages
Source Code: framework/web/CPagination.php#99 (show)
public function getPageCount()
{
    return (int)((
$this->_itemCount+$this->_pageSize-1)/$this->_pageSize);
}

getPageSize() method
public integer getPageSize()
{return} integer number of items in each page. Defaults to 10.
Source Code: framework/web/CPagination.php#65 (show)
public function getPageSize()
{
    return 
$this->_pageSize;
}

setCurrentPage() method
public void setCurrentPage(integer $value)
$value integer the zero-based index of the current page.
Source Code: framework/web/CPagination.php#130 (show)
public function setCurrentPage($value)
{
    
$this->_currentPage=$value;
    
$_GET[$this->pageVar]=$value+1;
}

setItemCount() method
public void setItemCount(integer $value)
$value integer total number of items.
Source Code: framework/web/CPagination.php#90 (show)
public function setItemCount($value)
{
    if((
$this->_itemCount=$value)<0)
        
$this->_itemCount=0;
}

setPageSize() method
public void setPageSize(integer $value)
$value integer number of items in each page
Source Code: framework/web/CPagination.php#73 (show)
public function setPageSize($value)
{
    if((
$this->_pageSize=$value)<=0)
        
$this->_pageSize=self::DEFAULT_PAGE_SIZE;
}