12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * CListPager class file.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @link http://www.yiiframework.com/
- * @copyright 2008-2013 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
- /**
- * CListPager displays a dropdown list that contains options leading to different pages of target.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @package system.web.widgets.pagers
- * @since 1.0
- */
- class CListPager extends CBasePager
- {
- /**
- * @var string the text shown before page buttons. Defaults to 'Go to page: '.
- */
- public $header;
- /**
- * @var string the text shown after page buttons.
- */
- public $footer;
- /**
- * @var string the text displayed as a prompt option in the dropdown list. Defaults to null, meaning no prompt.
- */
- public $promptText;
- /**
- * @var string the format string used to generate page selection text.
- * The sprintf function will be used to perform the formatting.
- */
- public $pageTextFormat;
- /**
- * @var array HTML attributes for the enclosing 'div' tag.
- */
- public $htmlOptions=array();
- /**
- * Initializes the pager by setting some default property values.
- */
- public function init()
- {
- if($this->header===null)
- $this->header=Yii::t('yii','Go to page: ');
- if(!isset($this->htmlOptions['id']))
- $this->htmlOptions['id']=$this->getId();
- if($this->promptText!==null)
- $this->htmlOptions['prompt']=$this->promptText;
- if(!isset($this->htmlOptions['onchange']))
- $this->htmlOptions['onchange']="if(this.value!='') {window.location=this.value;};";
- }
- /**
- * Executes the widget.
- * This overrides the parent implementation by displaying the generated page buttons.
- */
- public function run()
- {
- if(($pageCount=$this->getPageCount())<=1)
- return;
- $pages=array();
- for($i=0;$i<$pageCount;++$i)
- $pages[$this->createPageUrl($i)]=$this->generatePageText($i);
- $selection=$this->createPageUrl($this->getCurrentPage());
- echo $this->header;
- echo CHtml::dropDownList($this->getId(),$selection,$pages,$this->htmlOptions);
- echo $this->footer;
- }
- /**
- * Generates the list option for the specified page number.
- * You may override this method to customize the option display.
- * @param integer $page zero-based page number
- * @return string the list option for the page number
- */
- protected function generatePageText($page)
- {
- if($this->pageTextFormat!==null)
- return sprintf($this->pageTextFormat,$page+1);
- else
- return $page+1;
- }
- }
|