Yii zii.widgets.CDetailView – вывести атрибут как формат HTML-кода

Я хочу, чтобы 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 ),