基本使用
自定义字段输出需要根据当前的情景来使用变量,不要一味的复制粘贴!
自定义字段默认输出的是数据库存储的内容
假设自定义字段为:test
栏目列表输出
{foreach $lists as $v}
{$v['test']}
{/foreach}
内容页输出
{$jz['test']}
loop方式输出
{loop table="article" as="v"}
{$v['test']}
{/loop}
自定义单选字段
默认输出的内容是数据库存储的,而单选字段存储的可能是一个数字,所以需要其他方式输出 假设自定义单选字段为:test
栏目列表输出
{foreach $lists as $v}
{fun get_key_field_select($v['test'],$v['molds'],'test')}
{/foreach}
内容页输出
{fun get_key_field_select($jz['test'],$jz['molds'],'test')}
loop方式输出
{loop table="article" as="v"}
{fun get_key_field_select($v['test'],$v['molds'],'test')}
{/loop}
自定义多选字段
默认输出的内容是数据库存储的,应该是类似:,1,2, 输出对应的内容需要特殊的方式 假设自定义多选字段为:test 选项如:白色=1,黑色=2,红色=3
栏目列表输出
{foreach $lists as $v}
#用空格分割
{fun implode(' ',get_key_field_select($v['test'],$v['molds'],'test') )}
#用 , 分割
{fun implode(',',get_key_field_select($v['test'],$v['molds'],'test') )}
{/foreach}
内容页输出
{fun implode(',',get_key_field_select($jz['test'],$jz['molds'],'test') )}
loop方式输出
{loop table="article" as="v"}
{fun implode(',',get_key_field_select($v['test'],$v['molds'],'test') )}
{/loop}
自定义图集字段
假设自定义图集字段为 abc
{php $pictures = explode('||',$jz['abc']) /}
{foreach $pictures as $v}
{php $pic = explode("|",$v); /}
图片链接:{$pic[0]}
图片描述:{$pic[1]} //v1.7.1+新增
{/foreach}
简写
{foreach explode('||',$jz['abc']) as $v}
{php $pic = explode("|",$v); /}
图片链接:{$pic[0]}
图片描述:{$pic[1]} //v1.7.1+新增
{/foreach}
自定义多附件
假设自定义多附件字段为 abc
{php $files = explode('||',$jz['abc']) /}
{foreach $files as $v}
{php $f = explode("|",$v); /}
附件链接:{$f[0]}
附件描述:{$f[1]} //v1.7.1+新增
{/foreach}
简写
{foreach explode('||',$jz['abc']) as $v}
{php $pic = explode("|",$v); /}
图片链接:{$pic[0]}
图片描述:{$pic[1]} //v1.7.1+新增
{/foreach}
$jz 仅在内容页模板可以使用,其他情况,请根据当前变量处理
自定义多行录入
多行录入是通过
||
进行拼接内容的,只需要拆分||
就可以输出每一行
假设字段为 abc
,内容页输出每一行
{foreach explode('||',$jz['abc']) as $v}
{php $pic = explode("|",$v); /}
{$v}
{/foreach}
自定义关联字段
关联字段关联的是那个模型的
ID
,输出关联的内容需要配置loop
进行输出 操作
- 选择需要关联的模型,如:栏目
- 选择关联模型需要显示出的字段,如:classname 意思就是当你需要选择栏目的时候,希望看到栏目的什么信息,肯定是栏目名字,不然都不知道选择哪个
- 一般关联字段的长度都是
11
int类型
前台输出关联的内容
假设关联字段为
abc
,关联模型是:商品
,显示字段是:title
{loop table="article" isshow="1" limit="10" as="v"}
关联字段内容:{$v['abc']}
关联信息:
{loop table="product" id="$v['abc']" as="vv"}
商品标题:{$vv['title']}
商品缩略图:{$vv['litpic']}
商品链接:{$vv['url']}
{/loop}
{/loop}
多选关联输出
假设关联字段为
abc
,关联模型是:用户
,显示字段是:username
{loop table="article" isshow="1" limit="10" as="v"}
关联字段内容:{$v['abc']}
关联信息:需要先判断是否存在关联,否则可能会报错
{php $gl = trim($v['abc'],',');/}
{if($gl)}
{loop table="member" in="id|$gl" as="vv"}
用户名:{$vv['username']}
{/loop}
{/if}
{/loop}
批量指定字段输出
一般使用在详情页里面,比如商品参数
<table class="table table-bordered">
<tbody>
<tr><th>参数</th><th>值</th></tr>
{foreach jz_show_fields($jz,'color,lx,hy') as $v}
<tr><td>{$v['title']}</td><td>{$v['data']}</td></tr>
{/foreach}
</tr>
</tbody>
</table>
指定
color
,lx
,hy
三个参数属性显示
输出单选多选选项
假设abc为自定义的单选字段,且在内容模块(article)中
<select name="abc" id="abc">
{foreach get_field_select('article','abc') as $v}
<option value="{$v[1]}">{$v[0]}</option>
{/foreach}
</select>
联动字段
视频教程:访问B站视频
假设A字段与B字段联动,那么A字段选择后,B字段的选项是根据A字段的值决定的
前提条件
:AB两个字段都是关联字段,A字段必须是关联模型单选下拉,B字段可以是关联模型单选也可以多选且不是远程数据(因为B字段的选项由A字段的值觉得,A字段选择完后,系统根据A字段的值给B字段输出选项)
下面我将模拟创建这个联动字段的一系列操作:
假设创建一个新模块,模块标识:Amodel
在这个新模型里面录入了三条数据,分别是:A1,A2,A3
创建另一个新模块,模块标识:Bmodel
在这个模块上面新建一个字段关联Amodel
内容的单选字段:a_id
在这个模块上录入4条数据,分别是:B1,B2(分别关联A1);B3,B4(分别关联A2)
现在,我需要在内容模型article
里面新增数据,分别关联Amodel
模型的A1
,并选择Bmodel
下面与A1
关联的数据(B1,B2)
我需要在`article`模型里面创建两个字段,blong_a(关联字段),blong_b(关联字段)
blong_a: 关联`Amodel`模型,单选,`是远程数据`,并且在联动框里面填入:联动字段:blong_b,联动字段之关联字段:a_id
blong_b: 关联`Bmodel`模型,单选,`非远程数据` (这个必须注意!!!)
(完成)