CContentDecorator
包 | system.web.widgets |
---|---|
继承 | class CContentDecorator » COutputProcessor » CFilterWidget » CWidget » CBaseController » CComponent |
实现 | IFilter |
可用自 | 1.0 |
源码 | framework/web/widgets/CContentDecorator.php |
CContentDecorator is mostly used to implement nested layouts, i.e., a layout is embedded within another layout. CBaseController defines a pair of convenient methods to use CContentDecorator:
$this->beginContent('path/to/view'); // ... content to be decorated $this->endContent();
The property view specifies the name of the view that is used to decorate the content. In the view, the content being decorated may be accessed with variable
$content
.公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
actionPrefix | string | the prefix to the IDs of the actions. | CWidget |
controller | CController | Returns the controller that this widget belongs to. | CWidget |
data | array | the variables (name=>value) to be extracted and made available in the decorative view. | CContentDecorator |
id | string | Returns the ID of the widget or generates a new one if requested. | CWidget |
isFilter | boolean | whether this widget is used as a filter. | CFilterWidget |
owner | CBaseController | Returns the owner/creator of this widget. | CWidget |
skin | mixed | the name of the skin to be used by this widget. | CWidget |
stopAction | boolean | whether to stop the action execution when this widget is used as a filter. | CFilterWidget |
view | mixed | the name of the view that will be used to decorate the captured content. | CContentDecorator |
viewPath | string | Returns the directory containing the view files for this widget. | CWidget |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CFilterWidget |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
actions() | Returns a list of actions that are used by this widget. | CWidget |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
beginCache() | Begins fragment caching. | CBaseController |
beginClip() | Begins recording a clip. | CBaseController |
beginContent() | Begins the rendering of content that is to be decorated by the specified view. | CBaseController |
beginWidget() | Creates a widget and executes it. | CBaseController |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
createWidget() | Creates a widget and initializes it. | CBaseController |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
endCache() | Ends fragment caching. | CBaseController |
endClip() | Ends recording a clip. | CBaseController |
endContent() | Ends the rendering of content. | CBaseController |
endWidget() | Ends the execution of the named widget. | CBaseController |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
filter() | Performs the filtering. | CFilterWidget |
getController() | Returns the controller that this widget belongs to. | CWidget |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getId() | Returns the ID of the widget or generates a new one if requested. | CWidget |
getIsFilter() | Checks whether this widget is used as a filter. | CFilterWidget |
getOwner() | Returns the owner/creator of this widget. | CWidget |
getViewFile() | Looks for the view script file according to the view name. | CWidget |
getViewPath() | Returns the directory containing the view files for this widget. | CWidget |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the widget. | COutputProcessor |
onProcessOutput() | Raised when the output has been captured. | COutputProcessor |
processOutput() | Processes the captured output. | CContentDecorator |
raiseEvent() | Raises an event. | CComponent |
render() | Renders a view. | CWidget |
renderFile() | Renders a view file. | CBaseController |
renderInternal() | Renders a view file. | CBaseController |
run() | Executes the widget. | COutputProcessor |
setId() | Sets the ID of the widget. | CWidget |
widget() | Creates a widget and executes it. | CBaseController |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
decorate() | Decorates the content by rendering a view and embedding the content in it. | CContentDecorator |
属性详情
the variables (name=>value) to be extracted and made available in the decorative view.
the name of the view that will be used to decorate the captured content. If this property is null (default value), the default layout will be used as the decorative view. Note that if the current controller does not belong to any module, the default layout refers to the application's default layout; If the controller belongs to a module, the default layout refers to the module's default layout.
方法详情
protected string decorate(string $content)
| ||
$content | string | the content to be decorated |
{return} | string | the decorated content |
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;
}
Decorates the content by rendering a view and embedding the content in it.
The content being embedded can be accessed in the view using variable $content
The decorated content will be displayed directly.
public void processOutput(string $output)
| ||
$output | string | the captured output to be processed |
public function processOutput($output)
{
$output=$this->decorate($output);
parent::processOutput($output);
}
Processes the captured output. This method decorates the output with the specified view.