如何对自定义字段做特殊显示处理
后台可以自由添加字段,但是前台默认显示的格式是固定的,但你可以对它做进一步的个性处理,如下图所示。

如下图所示,你可以对模板进行字段的个性化处理

图中涉及到的代码如下
{qb:showpage field="title,content,picurl,telphone,maps,rooms_buju"} <li><span>{title}:</span>{value}</li> {/qb:showpage}
<li><span>室内布局:</span>{$info.rooms_buju}</li>
<li><span>室内布局:</span> {volist name=":str_array(get_field(2)['rooms_buju']['options'])" id="name" key="k"} <i style="color:{$k==$info._rooms_buju?'red':''}">{$name}</i>、 {/volist} </li>
<li><span>配套设施:</span> {volist name=":str_array(get_field(2)['peitao']['options'])" id="name" key="k"} <i style="color:{:in_array($k,str_array($info[_peitao]))?'red':''}">{$name}</i>、 {/volist} </li>其中field="title,content,picurl,telphone,maps,rooms_buju" 这个参数是为了禁止哪些字段自动显示出来,避免重复显示。
<li><span>室内布局:</span>{$info.rooms_buju}</li> 这个是直接显示,不做特殊处理。仅只是做了位置的调整处理而已
下面这段代码,是对单选项的特殊化显示处理。为了实现把所有选项都列出来,而对选中项实现加红突出显示的目的。注意当中的自定义字段名是
rooms_buju对应换成你自己的。
{volist name=":str_array(get_field(2)['rooms_buju']['options'])" id="name" key="k"} <i style="color:{$k==$info._rooms_buju?'red':''}">{$name}</i>、 {/volist}下面这段代码,是对多选项的特殊化显示处理。为了实现把所有选项都列出来,而对选中项实现加红突出显示的目的。注意当中的自定义字段名是
peitao对应换成你自己的。
{volist name=":str_array(get_field(2)['peitao']['options'])" id="name" key="k"} <i style="color:{:in_array($k,str_array($info._peitao))?'red':''}">{$name}</i>、 {/volist}最后,特别要提醒一下,在判断当中用到变量名前面加了一个前缀下画线,比如
{$k==$info._rooms_buju?'red':''}当中的$info._rooms_buju注意并不是$info.rooms_buju。又比如{:in_array($k,str_array($info._peitao))?'red':''}当中的$info._peitao注意并不是$info.peitao。他们都分别在字段名前面加了一个下画线。这代表是取原始数值,而不是转义后显示出来的数值。
上面仅仅是对单选 与 多选项的特殊处理。他们获取的原始循环数组都用到了 str_array 函数。其它字段,比如二级,三维数组的话,有点不一样。就用另外的 json_decode ,比如
{volist name=":json_decode(get_field(2)['xxxxxaaaaaaa']['options'],true)" id="rs"}
{/volist}复制
最后重点再提醒一下,其中的 get_field(2) 代表获取模型二的内容