Spec-Zone.ru › Yii 1.1

CBaseListView

Пакет zii.widgets
Наследование абстрактный класс CBaseListView » CWidget » CBaseController » CComponent
Подклассы CGridView, CListView
С версии 1.1
Исходный код framework/zii/widgets/CBaseListView.php
CBaseListView — базовый класс для CListView и CGridView.

CBaseListView реализует общие функции, необходимые виджету представления для отображения нескольких моделей.

Свойства публичного доступа

Свойство Тип Описание Определено в
actionPrefix строка префикс к идентификаторам действий. CWidget
controller CController Возвращает контроллер, к которому принадлежит этот виджет. CWidget
dataProvider IDataProvider источник данных для представления. CBaseListView
emptyCssClass строка имя CSS-класса для контейнера свойства emptyText. CBaseListView
emptyTagName строка имя HTML-тега для контейнера свойства emptyText. CBaseListView
emptyText строка сообщение, отображаемое, когда dataProvider не содержит данных. CBaseListView
enablePagination логическое значение включить постраничный вывод. CBaseListView
enableSorting логическое значение включить сортировку. CBaseListView
htmlOptions массив HTML-опции для тега контейнера представления. CBaseListView
id строка Возвращает идентификатор виджета или генерирует новый, если необходимо. CWidget
itemsCssClass строка имя CSS-класса для контейнера отображения всех элементов данных. CBaseListView
loadingCssClass строка имя CSS-класса, которое будет назначено элементу контейнера виджета при обновлении содержимого виджета через AJAX. CBaseListView
owner CBaseController Возвращает владельца/создателя этого виджета. CWidget
pager массив или строка конфигурация для навигации по страницам. CBaseListView
pagerCssClass строка имя CSS-класса для контейнера навигации по страницам. CBaseListView
skin смешанный тип имя скина, используемого этим виджетом. CWidget
summaryCssClass строка имя CSS-класса для контейнера текста сводки. CBaseListView
summaryTagName строка имя HTML-тега для контейнера свойства summaryText. CBaseListView
summaryText строка шаблон текста сводки для представления. CBaseListView
tagName строка имя тега для контейнера представления. CBaseListView
template строка шаблон, используемый для управления макетом различных разделов в представлении. CBaseListView
viewPath строка Возвращает директорию, содержащую файлы представления для этого виджета. CWidget

Общедоступные методы

Метод Описание Определено в
__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
getEventHandlers() Возвращает список подключенных обработчиков событий для события. CComponent
getId() Возвращает идентификатор виджета или генерирует новый, если запрошено. CWidget
getOwner() Возвращает владельца/создателя этого виджета. CWidget
getViewFile() Ищет файл сценария представления в соответствии с именем представления. CWidget
getViewPath() Возвращает каталог, содержащий файлы представлений для этого виджета. CWidget
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли прикрепленные обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует представление. CBaseListView
raiseEvent() Вызывает событие. CComponent
registerClientScript() Регистрирует необходимые скрипты клиента. CBaseListView
render() Отображает представление. CWidget
renderContent() Отображает основное содержимое представления. CBaseListView
renderEmptyText() Отображает сообщение об отсутствии данных, если данные отсутствуют. CBaseListView
renderFile() Отображает файл представления. CBaseController
renderInternal() Отображает файл представления. CBaseController
renderItems() Отображает элементы данных для представления. CBaseListView
renderKeys() Отображает значения ключей данных в скрытом теге. CBaseListView
renderPager() Отображает постраничную навигацию. CBaseListView
renderSummary() Отображает сводную информацию. CBaseListView
run() Отображает представление. CBaseListView
setId() Устанавливает идентификатор виджета. CWidget
widget() Создает виджет и выполняет его. CBaseController

Защищенные методы

Метод Описание Определено в
renderSection() Отображает раздел. CBaseListView

Подробное описание свойств

dataProvider свойство

public IDataProvider $dataProvider;

источник данных для представления.

emptyCssClass свойство (доступно начиная с v1.1.16)

public string $emptyCssClass;

Имя класса CSS для контейнера свойства emptyText. По умолчанию 'empty'.

emptyTagName свойство

public string $emptyTagName;

Имя HTML тега для контейнера свойства emptyText.

emptyText свойство

public string $emptyText;

Сообщение, отображаемое, когда у dataProvider нет данных.

enablePagination свойство

public boolean $enablePagination;

Включить или выключить пагинацию. Если свойство IDataProvider::pagination объекта dataProvider имеет значение false, это свойство также будет считаться false. При включенной пагинации в представлении будет отображен компонент пагинации для управления отображением данных. По умолчанию true.

enableSorting свойство

public boolean $enableSorting;

Включить или выключить сортировку. Если свойство IDataProvider::sort объекта dataProvider имеет значение false, это свойство также будет считаться false. При включенной сортировке заголовки сортируемых столбцов будут кликабельными для сортировки по этому столбцу. По умолчанию true.

См. также

  • sortableAttributes

htmlOptions свойство

public array $htmlOptions;

HTML параметры для тега контейнера представления.

itemsCssClass свойство

public string $itemsCssClass;

Имя класса CSS для контейнера отображения всех элементов данных. По умолчанию 'items'. Обратите внимание, что это свойство не должно содержать значения false, null или пустую строку. В противном случае такие значения могут привести к неопределенному поведению.

loadingCssClass свойство (доступно начиная с v1.1.1)

public string $loadingCssClass;

Имя класса CSS, которое будет назначено элементу контейнера виджета, когда виджет обновляет своё содержимое с помощью AJAX. По умолчанию 'loading'.

pager свойство

public array|string $pager;

Настройка для компонента пагинации. По умолчанию array('class'=>'CLinkPager'). Строковое значение будет обрабатываться как имя класса пагинатора ('ClassName' значение аналогично значению array('class'=>'ClassName')). Подробнее о значениях массива конфигурации пагинатора см. CBasePager и CLinkPager.

См. также

  • enablePagination

pagerCssClass свойство

public string $pagerCssClass;

Имя класса CSS для контейнера пагинатора. По умолчанию 'pager'. Обратите внимание, что это свойство не должно содержать значения false, null или пустую строку. В противном случае такие значения могут привести к неопределенному поведению.

summaryCssClass свойство

public string $summaryCssClass;

Имя класса CSS для контейнера текста сводки. По умолчанию 'summary'.

summaryTagName свойство (доступно начиная с v1.1.16)

public string $summaryTagName;

Имя HTML тега для контейнера свойства summaryText.

summaryText свойство

public string $summaryText;

Шаблон текста сводки для представления. Распознаются следующие плейсхолдеры и будут заменены соответствующими значениями:

  • {start}: начальный номер строки (с 1)
  • {end}: конечный номер строки (с 1)
  • {count}: общее количество строк
  • {page}: номер страницы (с 1), доступно начиная с версии 1.1.3
  • {pages}: общее количество страниц, доступно начиная с версии 1.1.3

tagName свойство

public string $tagName;

Имя тега для контейнера представления. По умолчанию 'div'.

template свойство

public string $template;

Шаблон, используемый для управления макетом различных секций представления. Распознаются плейсхолдеры: {summary}, {items} и {pager}. Они будут заменены текстом сводки, элементами и пагинатором.

Подробное описание методов

init() метод

public void init()
Исходный код: framework/zii/widgets/CBaseListView.php#120 (показать)
public function init()
{
    if(
$this->dataProvider===null)
        throw new 
CException(Yii::t('zii','The "dataProvider" property cannot be empty.'));

    
$this->dataProvider->getData();

    if(isset(
$this->htmlOptions['id']))
        
$this->id=$this->htmlOptions['id'];
    else
        
$this->htmlOptions['id']=$this->id;

    if(
$this->enableSorting && $this->dataProvider->getSort()===false)
        
$this->enableSorting=false;
    if(
$this->enablePagination && $this->dataProvider->getPagination()===false)
        
$this->enablePagination=false;
}

Инициализирует представление. Этот метод инициализирует необходимые значения свойств и создаёт объекты столбцов.

registerClientScript() метод

public void registerClientScript()
Исходный код: framework/zii/widgets/CBaseListView.php#297 (показать)
public function registerClientScript()
{
}

Регистрирует необходимые клиентские скрипты. Этот метод вызывается методом run. Дочерние классы могут переопределить этот метод для регистрации настраиваемых клиентских скриптов.

renderContent() метод

public void renderContent()
Исходный код: framework/zii/widgets/CBaseListView.php#161 (показать)
public function renderContent()
{
    
ob_start();
    echo 
preg_replace_callback("/{(\w+)}/",array($this,'renderSection'),$this->template);
    
ob_end_flush();
}

Отображает основное содержимое представления. Содержимое разделено на секции, такие как сводка, элементы, пагинатор. Каждая секция отображается методом с именем "renderXyz", где "Xyz" — имя секции. Результаты рендеринга заменят соответствующие плейсхолдеры в template.

renderEmptyText() метод

public void renderEmptyText()
Исходный код: framework/zii/widgets/CBaseListView.php#193 (показать)
public function renderEmptyText()
{
    
$emptyText=$this->emptyText===null ? Yii::t('zii','No results found.') : $this->emptyText;
    echo 
CHtml::tag($this->emptyTagName, array('class'=>$this->emptyCssClass), $emptyText);
}

Отображает сообщение об отсутствии данных, когда нет данных.

renderItems() метод

abstract public void renderItems()
Исходный код: framework/zii/widgets/CBaseListView.php#306 (показать)
abstract public function renderItems();

Отображает элементы данных для представления. Каждый элемент соответствует одному экземпляру модели данных. Дочерние классы должны переопределить этот метод, чтобы обеспечить фактическую логику рендеринга элементов.

renderKeys() метод

public void renderKeys()
Исходный код: framework/zii/widgets/CBaseListView.php#202 (показать)
public function renderKeys()
{
    echo 
CHtml::openTag('div',array(
        
'class'=>'keys',
        
'style'=>'display:none',
        
'title'=>Yii::app()->getRequest()->getUrl(),
    ));
    foreach(
$this->dataProvider->getKeys() as $key)
        echo 
"<span>".CHtml::encode($key)."</span>";
    echo 
"</div>\n";
}

Отображает значения ключей данных в скрытом теге.

renderPager() метод

public void renderPager()
Исходный код: framework/zii/widgets/CBaseListView.php#262 (показать)
public function renderPager()
{
    if(!
$this->enablePagination)
        return;

    
$pager=array();
    
$class='CLinkPager';
    if(
is_string($this->pager))
        
$class=$this->pager;
    elseif(
is_array($this->pager))
    {
        
$pager=$this->pager;
        if(isset(
$pager['class']))
        {
            
$class=$pager['class'];
            unset(
$pager['class']);
        }
    }
    
$pager['pages']=$this->dataProvider->getPagination();

    if(
$pager['pages']->getPageCount()>1)
    {
        echo 
'<div class="'.$this->pagerCssClass.'">';
        
$this->widget($class,$pager);
        echo 
'</div>';
    }
    else
        
$this->widget($class,$pager);
}

Отображает пагинатор.

renderSection() метод

protected string renderSection(array $matches)
$matches массив соответствия, где $matches[0] представляет весь плейсхолдер, а $matches[1] содержит имя сопоставленного плейсхолдера.
{return} строка результат рендеринга секции
Исходный код: framework/zii/widgets/CBaseListView.php#176 (показать)
protected function renderSection($matches)
{
    
$method='render'.$matches[1];
    if(
method_exists($this,$method))
    {
        
$this->$method();
        
$html=ob_get_contents();
        
ob_clean();
        return 
$html;
    }
    else
        return 
$matches[0];
}

Отображает секцию. Этот метод вызывается методом renderContent для каждого плейсхолдера, найденного в template. Он должен возвращать результат рендеринга, который заменит плейсхолдер.

renderSummary() метод

public void renderSummary()
Исходный код: framework/zii/widgets/CBaseListView.php#217 (показать)
public function renderSummary()
{
    if((
$count=$this->dataProvider->getItemCount())<=0)
        return;

    echo 
CHtml::openTag($this->summaryTagName, array('class'=>$this->summaryCssClass));
    if(
$this->enablePagination)
    {
        
$pagination=$this->dataProvider->getPagination();
        
$total=$this->dataProvider->getTotalItemCount();
        
$start=$pagination->currentPage*$pagination->pageSize+1;
        
$end=$start+$count-1;
        if(
$end>$total)
        {
            
$end=$total;
            
$start=$end-$count+1;
        }
        if((
$summaryText=$this->summaryText)===null)
            
$summaryText=Yii::t('zii','Displaying {start}-{end} of 1 result.|Displaying {start}-{end} of {count} results.',$total);
        echo 
strtr($summaryText,array(
            
'{start}'=>$start,
            
'{end}'=>$end,
            
'{count}'=>$total,
            
'{page}'=>$pagination->currentPage+1,
            
'{pages}'=>$pagination->pageCount,
        ));
    }
    else
    {
        if((
$summaryText=$this->summaryText)===null)
            
$summaryText=Yii::t('zii','Total 1 result.|Total {count} results.',$count);
        echo 
strtr($summaryText,array(
            
'{count}'=>$count,
            
'{start}'=>1,
            
'{end}'=>$count,
            
'{page}'=>1,
            
'{pages}'=>1,
        ));
    }
    echo 
CHtml::closeTag($this->summaryTagName);
}

Отображает текст сводки.

run() метод

public void run()
Исходный код: framework/zii/widgets/CBaseListView.php#143 (показать)
public function run()
{
    
$this->registerClientScript();

    echo 
CHtml::openTag($this->tagName,$this->htmlOptions)."\n";

    
$this->renderContent();
    
$this->renderKeys();

    echo 
CHtml::closeTag($this->tagName);
}

Отображает представление. Это основной вход для всего процесса отрисовки представления. Дочерние классы должны в основном переопределять метод renderContent.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CBaseListView

Spec-Zone.ru

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