CContentDecorator
| Пакет | system.web.widgets |
|---|---|
| Наследование | class CContentDecorator » COutputProcessor » CFilterWidget » CWidget » CBaseController » CComponent |
| Реализует | IFilter |
| С | 1.0 |
| Исходный код | framework/web/widgets/CContentDecorator.php |
CContentDecorator в основном используется для реализации вложенных макетов, т. е. макет встраивается в другой макет. CBaseController определяет пару удобных методов для использования CContentDecorator:
$this->beginContent('path/to/view');
// ... content to be decorated
$this->endContent();
Свойство view указывает имя представления, которое используется для декорирования контента. В представлении доступ к декорируемому контенту можно получить с помощью переменной
$content. Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| actionPrefix | string | префикс к идентификаторам действий. | CWidget |
| controller | CController | Возвращает контроллер, к которому принадлежит данный виджет. | CWidget |
| data | array | переменные (имя=>значение), которые будут извлечены и доступны в декорируемом представлении. | CContentDecorator |
| id | string | Возвращает ID виджета или генерирует новый, если запрошено. | CWidget |
| isFilter | boolean | указывает, используется ли этот виджет в качестве фильтра. | CFilterWidget |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| skin | mixed | имя используемой темы. | CWidget |
| stopAction | boolean | указывает, останавливать ли выполнение действия, когда этот виджет используется в качестве фильтра. | CFilterWidget |
| view | mixed | имя представления, которое будет использоваться для декорирования полученного контента. | CContentDecorator |
| viewPath | string | Возвращает директорию с файлами представления для этого виджета. | CWidget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CFilterWidget |
| __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 |
| filter() | Выполняет фильтрацию. | CFilterWidget |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| getIsFilter() | Проверяет, используется ли этот виджет в качестве фильтра. | CFilterWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл скрипта представления по имени представления. | CWidget |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединённые обработчики к событию с заданным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | COutputProcessor |
| onProcessOutput() | Вызывается, когда вывод был получен. | COutputProcessor |
| processOutput() | Обрабатывает полученный вывод. | CContentDecorator |
| raiseEvent() | Возбуждает событие. | CComponent |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполняет виджет. | COutputProcessor |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| decorate() | Декорирует содержимое, отображая представление и встраивая содержимое в него. | CContentDecorator |
События
| Событие | Описание | Определено в |
|---|---|---|
| onProcessOutput | Вызывается, когда вывод был получен. | COutputProcessor |
Подробное описание свойств
данные свойство
public array $data;
переменные (имя=>значение), которые должны быть извлечены и доступны в представлении-оболочке.
представление свойство
public mixed $view;
имя представления, которое будет использоваться для оформления захваченного содержимого. Если это свойство равно null (значение по умолчанию), то будет использовано стандартное представление. Обратите внимание, что если текущий контроллер не принадлежит ни одному модулю, то стандартное представление относится к стандартному представлению приложения; если контроллер принадлежит модулю, то стандартное представление относится к стандартному представлению модуля.
Подробное описание методов
decorate() метод
protected string decorate(string $content) | ||
| $content | строка | содержимое, которое нужно оформить |
| {return} | строка | оформленное содержимое |
protected function decorate($content)
{
$owner=$this->getOwner();
if($this->view===null)
$viewFile=Yii::app()->getController()->getLayoutFile(null);
else
$viewFile=$owner->getViewFile($this->view);
if($viewFile!==false)
{
$data=$this->data;
$data['content']=$content;
return $owner->renderFile($viewFile,$data,true);
}
else
return $content;
}
Оформляет содержимое, рендерингом представления и встраиванием содержимого в него. Доступ к встраиваемому содержимому в представлении осуществляется с помощью переменной $content Оформленное содержимое будет отображено непосредственно.
processOutput() метод
public void processOutput(string $output) | ||
| $output | строка | захваченный вывод, который нужно обработать |
public function processOutput($output)
{
$output=$this->decorate($output);
parent::processOutput($output);
}
Обрабатывает захваченный вывод. Этот метод оформляет вывод с помощью указанного представления.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CContentDecorator