CLinkPager
| Пакет | system.web.widgets.pagers |
|---|---|
| Наследование | class CLinkPager » CBasePager » CWidget » CBaseController » CComponent |
| С момента | 1.0 |
| Исходный код | framework/web/widgets/pagers/CLinkPager.php |
Общественные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| controller | CController | Возвращает контроллер, к которому относится этот виджет. | CWidget |
| cssFile | смешанный | CSS-файл, используемый для виджета. | CLinkPager |
| currentPage | целое число | индекс текущей страницы (с нуля). | CBasePager |
| firstPageCssClass | строка | CSS-класс для кнопки первой страницы. | CLinkPager |
| firstPageLabel | строка | текстовая метка для кнопки первой страницы. | CLinkPager |
| footer | строка | текст, отображаемый после кнопок страниц. | CLinkPager |
| header | строка | текст, отображаемый перед кнопками страниц. | CLinkPager |
| htmlOptions | массив | HTML-атрибуты для тега контейнера страницы. | CLinkPager |
| id | строка | Возвращает идентификатор виджета или генерирует новый, если требуется. | CWidget |
| internalPageCssClass | строка | CSS-класс для внутренних кнопок страниц. | CLinkPager |
| itemCount | целое число | общее количество элементов. | CBasePager |
| lastPageCssClass | строка | CSS-класс для кнопки последней страницы. | CLinkPager |
| lastPageLabel | строка | текстовая метка для кнопки последней страницы. | CLinkPager |
| maxButtonCount | целое число | максимальное количество кнопок страниц, которые могут быть отображены. | CLinkPager |
| nextPageCssClass | строка | CSS-класс для кнопки следующей страницы. | CLinkPager |
| nextPageLabel | строка | текстовая метка для кнопки следующей страницы. | CLinkPager |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| pageCount | целое число | количество страниц | CBasePager |
| pageSize | целое число | количество элементов на каждой странице. | CBasePager |
| pages | CPagination | Возвращает информацию о постраничном отображении, используемую этим страниц. | CBasePager |
| prevPageLabel | строка | текстовая метка для кнопки предыдущей страницы. | CLinkPager |
| previousPageCssClass | строка | CSS-класс для кнопки предыдущей страницы. | CLinkPager |
| selectedPageCssClass | строка | CSS-класс для выделенных кнопок страниц. | CLinkPager |
| skin | смешанный | название используемой темы этого виджета. | CWidget |
| viewPath | строка | Возвращает директорию, содержащую файлы представления для этого виджета. | CWidget |
Защищенные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| pageRange | массив | начальная и конечная страницы, которые необходимо отобразить. | CLinkPager |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кеширование фрагмента. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть оформлено указанным представлением. | CBaseController |
| beginWidget() | Создаёт виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создаёт виджет и инициализирует его. | CBaseController |
| detachBehavior() | Открепляет поведение от компонента. | CComponent |
| detachBehaviors() | Открепляет все поведения от компонента. | CComponent |
| detachEventHandler() | Открепляет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые к этому компоненту поведения. | CComponent |
| endCache() | Завершает кеширование фрагмента. | CBaseController |
| endClip() | Завершает запись клипа. | CBaseController |
| endContent() | Завершает отображение содержимого. | CBaseController |
| endWidget() | Завершает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getCurrentPage() | Возвращает индекс текущей страницы (с нуля). По умолчанию 0. | CBasePager |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если требуется. | CWidget |
| getItemCount() | Возвращает общее количество элементов. | CBasePager |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getPageCount() | Возвращает количество страниц. | CBasePager |
| getPageSize() | Возвращает количество элементов на каждой странице. | CBasePager |
| getPages() | Возвращает информацию о постраничном отображении, используемую этим постраничным навигатором. | CBasePager |
| getViewFile() | Ищет файл представления по имени представления. | CWidget |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединённые обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует постраничный навигатор, установив некоторые значения свойств по умолчанию. | CLinkPager |
| raiseEvent() | Возбуждает событие. | CComponent |
| registerClientScript() | Регистрирует необходимые клиентские скрипты (в основном файл CSS). | CLinkPager |
| registerCssFile() | Регистрирует необходимый файл CSS. | CLinkPager |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполняет виджет. | CLinkPager |
| setCurrentPage() | Устанавливает индекс текущей страницы (с нуля). | CBasePager |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| setItemCount() | Устанавливает общее количество элементов. | CBasePager |
| setPageSize() | Устанавливает количество элементов на каждой странице. | CBasePager |
| setPages() | Устанавливает информацию о постраничной навигации, используемую этим навигатором. | CBasePager |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
Защищённые методы
| Метод | Описание | Определён в |
|---|---|---|
| createPageButton() | Создаёт кнопку страницы. | CLinkPager |
| createPageButtons() | Создаёт кнопки страниц. | CLinkPager |
| createPageUrl() | Создаёт URL, подходящий для постраничной навигации. | CBasePager |
| createPages() | Создаёт стандартную постраничную навигацию. | CBasePager |
| getPageRange() | Возвращает начальную и конечную страницы, которые нужно отобразить. | CLinkPager |
Подробное описание свойств
cssFile свойство
public mixed $cssFile;
файл CSS, используемый для виджета. По умолчанию null, что означает использование файла по умолчанию, включённого вместе с виджетом. Если false, файл CSS не будет использоваться. В противном случае, указанный файл CSS будет включён при использовании этого виджета.
firstPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $firstPageCssClass;
класс CSS для кнопки первой страницы. По умолчанию 'first'.
firstPageLabel свойство
public string $firstPageLabel;
текстовая метка для кнопки первой страницы. По умолчанию '<< Первая'. Установка значения false отключит эту кнопку.
footer свойство
public string $footer;
текст, отображаемый после кнопок страниц.
header свойство
public string $header;
текст, отображаемый перед кнопками страниц. По умолчанию 'Перейти на страницу: '.
hiddenPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $hiddenPageCssClass;
класс CSS для скрытых кнопок страниц. По умолчанию 'hidden'.
htmlOptions свойство
public array $htmlOptions;
HTML-атрибуты для тега контейнера навигатора.
internalPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $internalPageCssClass;
класс CSS для внутренних кнопок страниц. По умолчанию 'page'.
lastPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $lastPageCssClass;
класс CSS для кнопки последней страницы. По умолчанию 'last'.
lastPageLabel свойство
public string $lastPageLabel;
текстовая метка для кнопки последней страницы. По умолчанию 'Последняя >>'. Установка значения false отключит эту кнопку.
maxButtonCount свойство
public integer $maxButtonCount;
максимальное количество кнопок страниц, которые могут быть отображены. По умолчанию 10.
nextPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $nextPageCssClass;
класс CSS для кнопки следующей страницы. По умолчанию 'next'.
nextPageLabel свойство
public string $nextPageLabel;
текстовая метка для кнопки следующей страницы. По умолчанию 'Следующая >'. Установка значения false отключит эту кнопку.
pageRange свойство только для чтения
protected array getPageRange()
начальная и конечная страницы, которые нужно отобразить.
prevPageLabel свойство
public string $prevPageLabel;
текстовая метка для кнопки предыдущей страницы. По умолчанию '< Предыдущая'. Установка значения false отключит эту кнопку.
previousPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $previousPageCssClass;
класс CSS для кнопки предыдущей страницы. По умолчанию 'previous'.
selectedPageCssClass свойство (доступно начиная с версии v1.1.11)
public string $selectedPageCssClass;
класс CSS для выделенных кнопок страниц. По умолчанию 'selected'.
Подробное описание методов
createPageButton() метод
protected string createPageButton(string $label, integer $page, string $class, boolean $hidden, boolean $selected) | ||
| $label | строка | текстовая метка для кнопки |
| $page | целое число | номер страницы |
| $class | строка | класс CSS для кнопки страницы. |
| $hidden | булево | является ли эта кнопка страницы видимой |
| $selected | булево | является ли эта кнопка страницы выделенной |
| {return} | строка | сгенерированная кнопка |
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>';
}
Создаёт кнопку страницы. Вы можете переопределить этот метод для настройки кнопок страниц.
createPageButtons() метод
protected array createPageButtons() | ||
| {return} | массив | список кнопок страниц (в HTML-коде). |
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;
}
Создаёт кнопки страниц.
getPageRange() метод
protected array getPageRange() | ||
| {return} | массив | начальная и конечная страницы, которые нужно отобразить. |
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() метод
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';
}
Инициализирует навигатор, задавая некоторые значения свойств по умолчанию.
registerClientScript() метод
public void registerClientScript() |
public function registerClientScript()
{
if($this->cssFile!==false)
self::registerCssFile($this->cssFile);
}
Регистрирует необходимые скрипты клиента (в основном файл CSS).
registerCssFile() метод
public static void registerCssFile(string $url=NULL) | ||
| $url | строка | URL файла CSS. Если null, будет использован URL файла CSS по умолчанию. |
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);
}
Регистрирует необходимый файл CSS.
run() метод
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;
}
Выполняет виджет. Это переопределяет реализацию родительского класса, отображая сгенерированные кнопки страниц.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CLinkPager