CLinkPager
Package | system.web.widgets.pagers |
---|---|
Inheritance | class CLinkPager » CBasePager » CWidget » CBaseController » CComponent |
Since | 1.0 |
Source Code | framework/web/widgets/pagers/CLinkPager.php |
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
actionPrefix | string | the prefix to the IDs of the actions. | CWidget |
controller | CController | Returns the controller that this widget belongs to. | CWidget |
cssFile | mixed | the CSS file used for the widget. | CLinkPager |
currentPage | integer | the zero-based index of the current page. | CBasePager |
firstPageCssClass | string | the CSS class for the first page button. | CLinkPager |
firstPageLabel | string | the text label for the first page button. | CLinkPager |
footer | string | the text shown after page buttons. | CLinkPager |
header | string | the text shown before page buttons. | CLinkPager |
htmlOptions | array | HTML attributes for the pager container tag. | CLinkPager |
id | string | Returns the ID of the widget or generates a new one if requested. | CWidget |
internalPageCssClass | string | the CSS class for the internal page buttons. | CLinkPager |
itemCount | integer | total number of items. | CBasePager |
lastPageCssClass | string | the CSS class for the last page button. | CLinkPager |
lastPageLabel | string | the text label for the last page button. | CLinkPager |
maxButtonCount | integer | maximum number of page buttons that can be displayed. | CLinkPager |
nextPageCssClass | string | the CSS class for the next page button. | CLinkPager |
nextPageLabel | string | the text label for the next page button. | CLinkPager |
owner | CBaseController | Returns the owner/creator of this widget. | CWidget |
pageCount | integer | number of pages | CBasePager |
pageSize | integer | number of items in each page. | CBasePager |
pages | CPagination | Returns the pagination information used by this pager. | CBasePager |
prevPageLabel | string | the text label for the previous page button. | CLinkPager |
previousPageCssClass | string | the CSS class for the previous page button. | CLinkPager |
selectedPageCssClass | string | the CSS class for the selected page buttons. | CLinkPager |
skin | mixed | the name of the skin to be used by this widget. | CWidget |
viewPath | string | Returns the directory containing the view files for this widget. | CWidget |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
pageRange | array | the begin and end pages that need to be displayed. | CLinkPager |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CWidget |
__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 |
actions() | Returns a list of actions that are used by this widget. | CWidget |
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 |
beginCache() | Begins fragment caching. | CBaseController |
beginClip() | Begins recording a clip. | CBaseController |
beginContent() | Begins the rendering of content that is to be decorated by the specified view. | CBaseController |
beginWidget() | Creates a widget and executes it. | CBaseController |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
createWidget() | Creates a widget and initializes it. | CBaseController |
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 |
endCache() | Ends fragment caching. | CBaseController |
endClip() | Ends recording a clip. | CBaseController |
endContent() | Ends the rendering of content. | CBaseController |
endWidget() | Ends the execution of the named widget. | CBaseController |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getController() | Returns the controller that this widget belongs to. | CWidget |
getCurrentPage() | Returns the zero-based index of the current page. Defaults to 0. | CBasePager |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getId() | Returns the ID of the widget or generates a new one if requested. | CWidget |
getItemCount() | Returns total number of items. | CBasePager |
getOwner() | Returns the owner/creator of this widget. | CWidget |
getPageCount() | Returns number of pages | CBasePager |
getPageSize() | Returns number of items in each page. | CBasePager |
getPages() | Returns the pagination information used by this pager. | CBasePager |
getViewFile() | Looks for the view script file according to the view name. | CWidget |
getViewPath() | Returns the directory containing the view files for this widget. | CWidget |
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 |
init() | Initializes the pager by setting some default property values. | CLinkPager |
raiseEvent() | Raises an event. | CComponent |
registerClientScript() | Registers the needed client scripts (mainly CSS file). | CLinkPager |
registerCssFile() | Registers the needed CSS file. | CLinkPager |
render() | Renders a view. | CWidget |
renderFile() | Renders a view file. | CBaseController |
renderInternal() | Renders a view file. | CBaseController |
run() | Executes the widget. | CLinkPager |
setCurrentPage() | Sets the zero-based index of the current page. | CBasePager |
setId() | Sets the ID of the widget. | CWidget |
setItemCount() | Sets total number of items. | CBasePager |
setPageSize() | Sets number of items in each page | CBasePager |
setPages() | Sets the pagination information used by this pager. | CBasePager |
widget() | Creates a widget and executes it. | CBaseController |
Protected Methods
Method | Description | Defined By |
---|---|---|
createPageButton() | Creates a page button. | CLinkPager |
createPageButtons() | Creates the page buttons. | CLinkPager |
createPageUrl() | Creates the URL suitable for pagination. | CBasePager |
createPages() | Creates the default pagination. | CBasePager |
getPageRange() | Returns the begin and end pages that need to be displayed. | CLinkPager |
Property Details
cssFile property
public mixed $cssFile;
the CSS file used for the widget. Defaults to null, meaning using the default CSS file included together with the widget. If false, no CSS file will be used. Otherwise, the specified CSS file will be included when using this widget.
firstPageCssClass property (available since v1.1.11)
public string $firstPageCssClass;
the CSS class for the first page button. Defaults to 'first'.
firstPageLabel property
public string $firstPageLabel;
the text label for the first page button. Defaults to '<< First'. Setting this to false will disable this button.
footer property
public string $footer;
the text shown after page buttons.
header property
public string $header;
the text shown before page buttons. Defaults to 'Go to page: '.
hiddenPageCssClass property (available since v1.1.11)
public string $hiddenPageCssClass;
the CSS class for the hidden page buttons. Defaults to 'hidden'.
htmlOptions property
public array $htmlOptions;
HTML attributes for the pager container tag.
internalPageCssClass property (available since v1.1.11)
public string $internalPageCssClass;
the CSS class for the internal page buttons. Defaults to 'page'.
lastPageCssClass property (available since v1.1.11)
public string $lastPageCssClass;
the CSS class for the last page button. Defaults to 'last'.
lastPageLabel property
public string $lastPageLabel;
the text label for the last page button. Defaults to 'Last >>'. Setting this to false will disable this button.
maxButtonCount property
public integer $maxButtonCount;
maximum number of page buttons that can be displayed. Defaults to 10.
nextPageCssClass property (available since v1.1.11)
public string $nextPageCssClass;
the CSS class for the next page button. Defaults to 'next'.
nextPageLabel property
public string $nextPageLabel;
the text label for the next page button. Defaults to 'Next >'. Setting this to false will disable this button.
pageRange property read-only
protected array getPageRange()
the begin and end pages that need to be displayed.
prevPageLabel property
public string $prevPageLabel;
the text label for the previous page button. Defaults to '< Previous'. Setting this to false will disable this button.
previousPageCssClass property (available since v1.1.11)
public string $previousPageCssClass;
the CSS class for the previous page button. Defaults to 'previous'.
selectedPageCssClass property (available since v1.1.11)
public string $selectedPageCssClass;
the CSS class for the selected page buttons. Defaults to 'selected'.
Method Details
createPageButton() method
protected string createPageButton(string $label, integer $page, string $class, boolean $hidden, boolean $selected) | ||
$label | string | the text label for the button |
$page | integer | the page number |
$class | string | the CSS class for the page button. |
$hidden | boolean | whether this page button is visible |
$selected | boolean | whether this page button is selected |
{return} | string | the generated button |
protected function createPageButton($label,$page,$class,$hidden,$selected)
{
if($hidden || $selected)
$class.=' '.($hidden ? $this->hiddenPageCssClass : $this->selectedPageCssClass);
return '<li class="'.$class.'">'.CHtml::link($label,$this->createPageUrl($page)).'</li>';
}
Creates a page button. You may override this method to customize the page buttons.
createPageButtons() method
protected array createPageButtons() | ||
{return} | array | a list of page buttons (in HTML code). |
protected function createPageButtons()
{
if(($pageCount=$this->getPageCount())<=1)
return array();
list($beginPage,$endPage)=$this->getPageRange();
$currentPage=$this->getCurrentPage(false); // currentPage is calculated in getPageRange()
$buttons=array();
// first page
if ($this->firstPageLabel !== false) {
$buttons[]=$this->createPageButton($this->firstPageLabel,0,$this->firstPageCssClass,$currentPage<=0,false);
}
// prev page
if ($this->prevPageLabel !== false) {
if(($page=$currentPage-1)<0)
$page=0;
$buttons[]=$this->createPageButton($this->prevPageLabel,$page,$this->previousPageCssClass,$currentPage<=0,false);
}
// internal pages
for($i=$beginPage;$i<=$endPage;++$i)
$buttons[]=$this->createPageButton($i+1,$i,$this->internalPageCssClass,false,$i==$currentPage);
// next page
if ($this->nextPageLabel !== false) {
if(($page=$currentPage+1)>=$pageCount-1)
$page=$pageCount-1;
$buttons[]=$this->createPageButton($this->nextPageLabel,$page,$this->nextPageCssClass,$currentPage>=$pageCount-1,false);
}
// last page
if ($this->lastPageLabel !== false) {
$buttons[]=$this->createPageButton($this->lastPageLabel,$pageCount-1,$this->lastPageCssClass,$currentPage>=$pageCount-1,false);
}
return $buttons;
}
Creates the page buttons.
getPageRange() method
protected array getPageRange() | ||
{return} | array | the begin and end pages that need to be displayed. |
protected function getPageRange()
{
$currentPage=$this->getCurrentPage();
$pageCount=$this->getPageCount();
$beginPage=max(0, $currentPage-(int)($this->maxButtonCount/2));
if(($endPage=$beginPage+$this->maxButtonCount-1)>=$pageCount)
{
$endPage=$pageCount-1;
$beginPage=max(0,$endPage-$this->maxButtonCount+1);
}
return array($beginPage,$endPage);
}
init() method
public void init() |
public function init()
{
if($this->nextPageLabel===null)
$this->nextPageLabel=Yii::t('yii','Next >');
if($this->prevPageLabel===null)
$this->prevPageLabel=Yii::t('yii','< Previous');
if($this->firstPageLabel===null)
$this->firstPageLabel=Yii::t('yii','<< First');
if($this->lastPageLabel===null)
$this->lastPageLabel=Yii::t('yii','Last >>');
if($this->header===null)
$this->header=Yii::t('yii','Go to page: ');
if(!isset($this->htmlOptions['id']))
$this->htmlOptions['id']=$this->getId();
if(!isset($this->htmlOptions['class']))
$this->htmlOptions['class']='yiiPager';
}
Initializes the pager by setting some default property values.
registerClientScript() method
public void registerClientScript() |
public function registerClientScript()
{
if($this->cssFile!==false)
self::registerCssFile($this->cssFile);
}
Registers the needed client scripts (mainly CSS file).
registerCssFile() method
public static void registerCssFile(string $url=NULL) | ||
$url | string | the CSS URL. If null, a default CSS URL will be used. |
public static function registerCssFile($url=null)
{
if($url===null)
$url=CHtml::asset(Yii::getPathOfAlias('system.web.widgets.pagers.pager').'.css');
Yii::app()->getClientScript()->registerCssFile($url);
}
Registers the needed CSS file.
run() method
public void run() |
public function run()
{
$this->registerClientScript();
$buttons=$this->createPageButtons();
if(empty($buttons))
return;
echo $this->header;
echo CHtml::tag('ul',$this->htmlOptions,implode("\n",$buttons));
echo $this->footer;
}
Executes the widget. This overrides the parent implementation by displaying the generated page buttons.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CLinkPager