CDetailView

Package zii.widgets
Inheritance class CDetailView » CWidget » CBaseController » CComponent
Since 1.1
Version $Id: CDetailView.php 184 2010-06-15 17:03:22Z qiang.xue $
CDetailView displays the detail of a single data model.

CDetailView is best used for displaying a model in a regular format (e.g. each model attribute is displayed as a row in a table.) The model can be either an instance of CModel or an associative array.

CDetailView uses the attributes property to determines which model attributes should be displayed and how they should be formatted.

A typical usage of CDetailView is as follows:
$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'title',             // title attribute (in plain text)
        'owner.name',        // an attribute of the related object "owner"
        'description:html',  // description attribute in HTML
        array(               // related city displayed as a link
            'label'=>'City',
            'type'=>'raw',
            'value'=>CHtml::link(CHtml::encode($model->city->name),
                                 array('city/view','id'=>$model->city->id)),
        ),
    ),
));

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
actionPrefix string the prefix to the IDs of the actions. CWidget
attributes array a list of attributes to be displayed in the detail view. CDetailView
baseScriptUrl string the base script URL for all detail view resources (e. CDetailView
controller CController the controller that this widget belongs to. CWidget
cssFile string the URL of the CSS file used by this detail view. CDetailView
data mixed the data model whose details are to be displayed. CDetailView
formatter CFormatter the formatter instance. CDetailView
htmlOptions array the HTML options used for tagName CDetailView
id string id of the widget. CWidget
itemCssClass array the CSS class names for the items displaying attribute values. CDetailView
itemTemplate string the template used to render a single attribute. CDetailView
nullDisplay string the text to be displayed when an attribute value is null. CDetailView
owner CBaseController owner/creator of this widget. CWidget
skin mixed the name of the skin to be used by this widget. CWidget
tagName string the name of the tag for rendering the detail view. CDetailView
viewPath string Returns the directory containing the view files for this widget. CWidget

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CWidget
__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
getController() CWidget
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getFormatter() CDetailView
getId() CWidget
getOwner() 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 detail view. CDetailView
raiseEvent() Raises an event. CComponent
render() Renders a view. CWidget
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
run() Renders the detail view. CDetailView
setFormatter() CDetailView
setId() CWidget
widget() Creates a widget and executes it. CBaseController

Property Details

attributes property
public array $attributes;

a list of attributes to be displayed in the detail view. Each array element represents the specification for displaying one particular attribute.

An attribute can be specified as a string in the format of "Name:Type:Label". Both "Type" and "Label" are optional.

"Name" refers to the attribute name. It can be either a property (e.g. "title") or a sub-property (e.g. "owner.username").

"Label" represents the label for the attribute display. If it is not given, "Name" will be used to generate the appropriate label.

"Type" represents the type of the attribute. It determines how the attribute value should be formatted and displayed. It is defaulted to be 'text'. "Type" should be recognizable by the formatter. In particular, if "Type" is "xyz", then the "formatXyz" method of formatter will be invoked to format the attribute value for display. By default when CFormatter is used, these "Type" values are valid: raw, text, ntext, html, date, time, datetime, boolean, number, email, image, url. For more details about these types, please refer to CFormatter.

An attribute can also be specified in terms of an array with the following elements:

baseScriptUrl property
public string $baseScriptUrl;

the base script URL for all detail view resources (e.g. javascript, CSS file, images). Defaults to null, meaning using the integrated detail view resources (which are published as assets).

cssFile property
public string $cssFile;

the URL of the CSS file used by this detail view. Defaults to null, meaning using the integrated CSS file. If this is set false, you are responsible to explicitly include the necessary CSS file in your page.

data property
public mixed $data;

the data model whose details are to be displayed. This can be either a CModel instance (e.g. a CActiveRecord object or a CFormModel object) or an associative array.

formatter property
public CFormatter getFormatter()
public void setFormatter(CFormatter $value)

the formatter instance. Defaults to the 'format' application component.

htmlOptions property
public array $htmlOptions;

the HTML options used for tagName

itemCssClass property
public array $itemCssClass;

the CSS class names for the items displaying attribute values. If multiple CSS class names are given, they will be assigned to the items sequentially and repeatedly. Defaults to array('odd', 'even').

itemTemplate property
public string $itemTemplate;

the template used to render a single attribute. Defaults to a table row. These tokens are recognized: "{class}", "{label}" and "{value}". They will be replaced with the CSS class name for the item, the label and the attribute value, respectively.

See Also

nullDisplay property
public string $nullDisplay;

the text to be displayed when an attribute value is null. Defaults to "Not set".

tagName property
public string $tagName;

the name of the tag for rendering the detail view. Defaults to 'table'.

See Also

Method Details

getFormatter() method
public CFormatter getFormatter()
{return} CFormatter the formatter instance. Defaults to the 'format' application component.

init() method
public void init()

Initializes the detail view. This method will initialize required property values.

run() method
public void run()

Renders the detail view. This is the main entry of the whole detail view rendering.

setFormatter() method
public void setFormatter(CFormatter $value)
$value CFormatter the formatter instance