Я хочу, чтобы description
выходного атрибута представляло собой HTML-код в CDetailView.
<?php $this->widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'id', 'title', 'description' => array( 'name' => 'description', 'value' => html_entity_decode(CHtml::decode($model->description)), ), 'price', 'date', ), ));?>
Вы хотите использовать формат: :html
:
'attributes'=>array( 'id', 'title', 'description:html', 'price', 'date', ),
Для других форматов см. CFormatter .
Вы можете даже расширить CFormatter и создать свои собственные форматы.
<?php class CustomFormatter extends CFormatter { public function formatLink($value) { return '<a href="'.$value.'">'.$value.'</a>'; } public function formatBold($value) { return '<b>'.$value.'</b>'; } public function formatArray($value) { return (is_array($value)) ? implode(', ', $value) : $value; } }
Если вы расширите CFormatter, обновите main.php вашего проекта, чтобы указать на новый файл:
// application components 'components' => array( 'format' => array( 'class' => 'application.extensions.CustomFormatter', ), ... ),
Пример использования:
'title:bold', 'website:link', 'tags:array',
// для просмотра
array( 'name' => 's_desc', 'type' => 'raw', 'value'=>GlobalFunction::html_view($model->s_desc), //html_view function from global function file made in /protected/components ),