Yii里的CDetailView可以用来显示详细内容,有时会遇到显示的html内容是被转义过的,也就是原本是要显示html样式的,结果显示出来的内容却是把html当作普通文本了。

先看一个CDetailView的典型应用:

$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)),
),
),
));

这里的attributes,详列视图中要显示的一系列属性。 每个数组元素代表显示一个特定的属性规范。

一个属性可以被指定为array的格式来定义元素,也可以是一个字符串,使用格式"Name:Type:Label"。 "Type"和"Label"是可选的。

"Name" 表示属性名称,可以是一个属性(e.g. "title") 或者是一个属性的属性 (e.g. "owner.username").

"Label" 表示显示的字符串. 如果不指定"Label", 将会直接显示"Name"的值.

"Type" 代表属性的显示形式. 这个参数决定了属性值以什么形式格式化并显示. 如果不指定,默认值是'text'.
"Type" 如:"Type" 设置为 "xyz" 则表示有CFormatter类的"formatXyz"这个函数会被格式化器调用。可以取值CFormatter可用的raw,text,ntext,html,date,time,datetime,boolean,number,email,image,url
值。

目前CFormatter可用的值列表详述如下:
raw: 不处理,原文直接输出.
text: 将文本htmlencode编码后输出.
ntext: 将文本htmlencode编码,并将换行符(\n)同时编码成<br />.
html: 将文本作为html输出,即富文本输出.
date: 格式化日期.
time: 格式化时间.
datetime: 格式化日期时间.
boolean: 格式化为布尔值.
number: 格式化为数字.
email: 格式成email的link,可以直接点击的那种.
image: 作为图片输出,属性值处理作为<img>标签src的值.
url: 处理成链接,输出.

这里的image是将属性值直接赋值给<img>的src,如果需要加其它前缀,很不方便,我扩展了这个功能,增加了一个wimage函数:
加到这个文件里,/framework/utils/CFormatter.php, 一般来说不建议直接修改框架 :)

public function formatWimage($value)
{
$pre = 'http://img.wangxing.com/';
return CHtml::image($pre .$value);
}

这样就可以自动增加带http的前缀了。

使用zii.widgets.CDetailView显示内容的更多相关文章

  1. Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示

    相关类手册: http://www.yiichina.com/api/CButtonColumn   buttons 属性 public array $buttons; the configurati ...

  2. content内网,会显示内容,没有内容可地址存在就是这个情况

    漏洞地址:http://note.youdao.com/memory/?url=http://www.wooyun.org(如需登录,请注册登录) 正文预览的地方会读取URL地址的<meta n ...

  3. javascript学习内容--改变样式、取消设置、显示内容、隐藏内容

    <head> <style> body{font-size:12px;} #txt{ height:400px; width:600px; border:#333 solid ...

  4. 【转】shell脚本中echo显示内容带颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下:   echo -e "\033[41;36m something here \033[0m&qu ...

  5. dede顶级栏目直接显示内容

    点击网站栏目管理,增加顶级栏目 在弹出的增加窗口中,填上栏目名称,其它的如果没有特殊的要求可直接默认 点击常规选项旁边的高级选项,并且在列表模板中,将其改一个文件名,这个文件名就是后面需要使用到的文件 ...

  6. 将CMD内的显示内容输出到txt文件

    将CMD内的显示内容输出到txt文件 xxxx -t >c:\test.txt        //xxxx为命令  如ping www.baidu.com //-t >c:\test.tx ...

  7. 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容

    尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Frag ...

  8. shell脚本中echo显示内容带颜色

    转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...

  9. jQuery:实现图片按需加载的方法,当要显示内容的高度超过了页面的高度,按需加载,根据滚动条的位置来判断页面显示的内容

    实现图片按需加载的方法,当要显示内容的高度超过了页面的高度,按需加载,根据滚动条的位置来判断页面显示的内容 这个类似于京东或淘宝页面,根绝页面的滚动,显示下面的内容 如下图所示,一开始并不是所有的图片 ...

随机推荐

  1. C# 构造器总结

    在C#中,构造器分为实例构造器和类型构造器, 一.实例构造器 构造引用类型的对象时,在调用实例 构造器之前,为对象分配的内存总是归0,没有被构造器显示重写的字段都保证获得0或null的值 在一个类中, ...

  2. angular2 表单验证

    模版式表单 (1) angular遇到form自动接管,不想自动接管,添加ngNoForm,当标签为div时,但想被表单接管,添加ngForm; (2) ngForm可以被模版本地变量引用,以便在模版 ...

  3. UEP-标签

    这里的标签都是常用不好理解的: formatfunc="showFormatNumer" 显示数字在页面上 ockedcolumnnum="6" 几列是不动的 ...

  4. 科普:String hashCode 方法为什么选择数字31作为乘子

    1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...

  5. JavaScript八张思维导图—Date用法

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  6. 本地apache 可以正常访问,lnmp服务器访问404错误

    if (!-e $request_filename) { rewrite  ^(.*)$  /index.php?s=/$1  last; break; }

  7. css cursor属性-显示的光标的类型(形状)的用法和定义

    在网页布局的时候,在特定的地方,光标形状各有区别.这个时候,就需要用到css的cursor属性.根据自身需要选择设置鼠标指针样式. 定义和用法 cursor 属性规定要显示的光标的类型(形状). 该属 ...

  8. 基于Redis的分布式锁的简单实现

    Redis官方给出两种思路 第一种:SET key value [EX seconds] [PX milliseconds] NX 第二种:SETNX+GETSET 首先,分别看一下这几个命令 SET ...

  9. 语句、变量等js最基本知识

    JavaScript的最为基本知识 1语法 js是区分大小写的:标识符就是指变量.函数.属性的名字或者是参数,标识符可以是字母,下划线,美元符号,数字,注意第一个不能是数字:js采用的是驼峰大小格式: ...

  10. Android-第二天

    1.Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...