使用zii.widgets.CDetailView显示内容

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显示内容,布布扣,bubuko.com

时间: 2024-10-24 04:56:31

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

grails2.3.x创建插件,gsp页面不能正确显示内容

grails2.3.x创建plugin时,默认的Config.groovy只有简单的log设置,这时候,页面添加数据之后,正确的逻辑是show新增的数据,但却变成404,需要在Config.groovy中增加以下代码: grails.mime.types = [ // the first one is the default format all:           '*/*', // 'all' maps to '*' or the first available format in wit

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

转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注:  1.字背景颜

ReportControl设置无显示内容时的提示文字

由于项目显示内容列表采用的是codejock software里面的ReportControl控件. 在没有显示内容时,提示文字"There are no items to show",想显示成中文的提示内容. 后台修改代码: this.reportControl控件名称.PaintManager.NoItemsText = "修改为自己的中文空行提示内容"; 即可! ReportControl设置无显示内容时的提示文字,布布扣,bubuko.com

点九图片的显示内容区域应作何理解

.9 ,是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png;点九图片的拉伸区域不难理解,显示内容区域是怎样的,接下来本文为您一一解答,感兴趣的朋友可以了解下 点九图片的拉伸区域不难理解,显示内容区域是怎样的?.9 ,是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,

webView根据显示内容动态设置frame

不多说,代码如下: 第一步设置代理,实现加载完毕的代理方法,重新根据显示内容设置frame - (void)webViewDidFinishLoad:(UIWebView *) webView { CGSize actualSize = [webView sizeThatFits:CGSizeZero]; CGRect newFrame = webView.frame; newFrame.size.height = actualSize.height; webView.frame = newFr

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

<head> <style> body{font-size:12px;} #txt{ height:400px; width:600px; border:#333 solid 1px; padding:5px;} p{ line-height:18px; text-indent:2em;} </style> </head> <body> <h2 id="con">JavaScript课程</h2> &l

android学习记录(十八)---AppWidget显示内容随数据改变而更新

我们知道,appWidget可通过设置widgetinfo中的updateTimeMillies设置更新的间隔,那么,当我们需要实时进行更新的时候呢?该如何进行appWidget显示内容的更新?如行程应用中添加了新的行程,想立刻在appWidget显示内容更新. 如何? 我们知道,widgetProvider本质上就是一个广播接收器,所以我们可以在数据修改处发送一个与之符合的广播. 当我们的intent并没附带任何额外数据,只定义了action的时候,会调用WidgetProvider中的onR

请编写&quot;改变颜色&quot;、&quot;改变宽高&quot;、&quot;隐藏内容&quot;、&quot;显示内容&quot;、&quot;取消设置&quot;的函数,点击相应按钮执行相应操作,点击&quot;取消设置&quot;按钮后,提示是否取消设置,如是执行操作,否则不做操作

<!DOCTYPE HTML><html><head><meta http-equiv="txttent-Type" txttent="text/html; charset=utf-8" /><title>javascript</title><style type="text/css">body{font-size:12px;}#txt{ height:400px

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

尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky 需求 在搭界面有这么样一个需求:需要两层的Fragment嵌套,内层需要滑动切换效果,外层界面不需要滑动效果.那么内层使用ViewPager切换,外层就使用replace切换.这样搭出来的界面不能得到需要的效果,内层的Fragment只有第一次能显示内容,之后切换外层Fragment时,内层Fragent都是空着的. 我再尝试两层Fragment都使用replace切换,这样就能达到效果了.但是项