Spec-Zone.ru › Yii 1.1

CLinkPager

Пакет system.web.widgets.pagers
Наследование class CLinkPager » CBasePager » CWidget » CBaseController » CComponent
С момента 1.0
Исходный код framework/web/widgets/pagers/CLinkPager.php
CLinkPager отображает список гиперссылок, которые ведут к различным страницам целевого объекта.

Общественные свойства

Свойство Тип Описание Определено
actionPrefix строка префикс к идентификаторам действий. CWidget
controller CController Возвращает контроллер, к которому относится этот виджет. CWidget
cssFile смешанный CSS-файл, используемый для виджета. CLinkPager
currentPage целое число индекс текущей страницы (с нуля). CBasePager
firstPageCssClass строка CSS-класс для кнопки первой страницы. CLinkPager
firstPageLabel строка текстовая метка для кнопки первой страницы. CLinkPager
footer строка текст, отображаемый после кнопок страниц. CLinkPager
header строка текст, отображаемый перед кнопками страниц. CLinkPager
hiddenPageCssClass строка CSS-класс для скрытых кнопок страниц. 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} строка сгенерированная кнопка
Исходный код: framework/web/widgets/pagers/CLinkPager.php#196 (показать)
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-коде).
Исходный код: framework/web/widgets/pagers/CLinkPager.php#148 (показать)
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} массив начальная и конечная страницы, которые нужно отобразить.
Исходный код: framework/web/widgets/pagers/CLinkPager.php#206 (показать)
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()
Исходный код: framework/web/widgets/pagers/CLinkPager.php#110 (показать)
public function init()
{
    if(
$this->nextPageLabel===null)
        
$this->nextPageLabel=Yii::t('yii','Next &gt;');
    if(
$this->prevPageLabel===null)
        
$this->prevPageLabel=Yii::t('yii','&lt; Previous');
    if(
$this->firstPageLabel===null)
        
$this->firstPageLabel=Yii::t('yii','&lt;&lt; First');
    if(
$this->lastPageLabel===null)
        
$this->lastPageLabel=Yii::t('yii','Last &gt;&gt;');
    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()
Исходный код: framework/web/widgets/pagers/CLinkPager.php#223 (показать)
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 по умолчанию.
Исходный код: framework/web/widgets/pagers/CLinkPager.php#233 (показать)
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()
Исходный код: framework/web/widgets/pagers/CLinkPager.php#133 (показать)
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

Spec-Zone.ru

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