模板制作教程:字段调用

用户设定值Score

内容详情中(show.html) 模板中调用方法是:

{if $字段名_sku}
按用户组的值:
{php $vsku = dr_string2array($字段名_sku);}
{cache name=member_group return=mc}

用户组【{$mc.name}】: {$vsku[$mc.id]}

{/cache} {else} 全局值:{$字段名} {/if}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]

百度地图Baidumap

需要安装官方版的<百度地图字段插件

内容详情中(show.html) 模板中调用方法是:

调用百度地图:{dr_baidu_map($字段名, 17, '100%', '400', "密钥", 'class', '这里是标注显示信息', '图标自定义地址')}

参数1 必填:字段
参数2 必填:17是缩放大小
参数3 必填:100%是宽度,可以填写200表示200px
参数4 必填:400是高度,表示400px

参数5 可选:百度地图KEY
参数6 可选:div的class名称
参数7 可选:地图上的标注信息,例如填写公司地址等,支持html标签
参数8 可选:图标的自定义地址,默认是红点图标


显示标注信息的样式支持html标签的

image.png



调用腾讯地图:{dr_qq_map($字段名, 17, '100%', '400')}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


复选框 Checkbox

内容详情中(show.html) 模板中调用方法是:

选择值:
    {loop $字段名 $v}
    {$v}
    {/loop}
    
    选择的名称:

    {php $field = dr_field_options(字段的ID号);}
    {loop $field $v $name}
    {if in_array($v, $字段名)}
    {$name}
    {/if}
    {/loop}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


颜色选取Color

内容详情中(show.html) 模板中调用方法是:


{$字段名}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


时间字段 Date

内容详情中(show.html) 模板中调用方法是:

默认输出:{$字段名}

自定义时间:{dr_date($_字段名, 'Y-m-d')}

友好的时间:{dr_fdate($_字段名)}

{if dr_date($_字段名, 'Y-m-d') == date('Y-m-d')} 表示今天的时间 {/if}


关于日期函数dr_date参数介绍:https://www.xunruicms.com/doc/523.html


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


单文件File

内容详情中(show.html) 模板中调用方法是:


文件的地址:{dr_get_file($字段名)}

文件的下载地址:{dr_down_file($字段名)}

缩略图地址:{dr_thumb($字段名, 100, 100)}

缩略图带上水印地址:{dr_thumb($字段名, 100, 100, 1)}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


多文件Files

内容详情中(show.html) 模板中调用方法是:

{loop $字段名 $i $c}
    序号: {$i}
    标题:{$c.title}
    描述:{$c.description}
    文件原始地址:{dr_get_file($c.file)}     文件的下载地址:{dr_down_file($c.file)}     图片缩略图:{dr_thumb($c.file, 200, 200)}     图片缩略图带水印:{dr_thumb($c.file, 200, 200, 1)} {/loop}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


手动格式化方法

{php $字段名 = dr_get_files($字段名);}


表格字段 Ftable

内容详情中(show.html) 模板中调用方法是:


默认class写法:{dr_get_ftable(字段ID号, $字段名)}
自定义table的class写法:{dr_get_ftable(字段ID号, $字段名, 'mytableclass')}
mytableclass就是给表格加class,解析为:table calss="mytableclass"


----------------按需输出列表的写法0------------

{php $field = \Phpcmf\Service::C()->get_cache('table-field', 这里填写Ftable字段的id号); $value = dr_string2array($字段名); }

    
    
        {if ($field['setting']['option']['is_first_hang'] && !$field['setting']['option']['is_add'])}
        
        {/if}
        {loop $field['setting']['option']['field'] $t}
        {if $t['type']}
         {dr_lang($t['name'])}
        {/if}
        {/loop}
    
    
    
    {php $i = 1;}
    {loop $value $ii $val}
    
        {if ($field['setting']['option']['is_first_hang'] && !$field['setting']['option']['is_add'])}
        
        {/if}
        {loop $field['setting']['option']['field'] $n $t}
        {if $t['type']}
        
        {/if}
        {/loop}
    
    {php $i++;}
    {/loop}
    
 {dr_lang($field['setting']['option']['first_cname'])} 
 {dr_lang($field['setting']['option']['hang'][$i]['name'])} {$val[$n]}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


图片专用Image

内容详情中(show.html) 模板中调用方法是:

{loop $字段名 $i $c}
    序号: {$i}
    文件原始地址:{dr_get_file($c)}
    文件的下载地址:{dr_down_file($c)}
    图片缩略图:{dr_thumb($c, 200, 200)}
    图片缩略图带水印:{dr_thumb($c, 200, 200, 1)}
{/loop}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


联动菜单(单选) Linkage

内容详情中(show.html) 模板中调用方法是:

联动菜单名称:     {dr_linkage('菜单的别名', $字段名, 0, 'name')}

联动菜单顶级的名称:     {dr_linkage('菜单的别名', $字段名, 1, 'name')}

面包屑导航:     {dr_linkagepos('菜单的别名', $字段名, ' - ')}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


价格字段 Pay

内容详情中(show.html) 模板中调用方法是:



普通输出:{$字段名}
价格值:{dr_price_value($字段名)}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


参数属性Property

内容详情中(show.html) 模板中调用方法是:

{loop $字段名 $i $c}
属性名:{$c.name}
属性值:{$c.value}
{/loop}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


单选字段Radio

内容详情中(show.html) 模板中调用方法是:

选择值:{$字段名} 

选择的名称:     {php $field = dr_field_options(字段ID号);}     {$field[$字段名]} 



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


模块内容关联 Related

内容详情中(show.html) 模板中调用方法是:

{if $字段名}
{module module=模块 IN_id=$字段名 return=r}
{$r.url}
{$r.title}
......
{/module}
{else}
没有关联
{/if}

注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


示例:

1、循环列表中调用关联字段内容数量总量

{substr_count($t.字段名, ',')}


2、循环中的排序方式按拖动的id顺序来排列

{module module=模块 IN_id=$字段名 order=id_instr return=r}

3、反向查询,查询当前内容被哪些所关联过

{module module=模块 FIND_字段名=$id return=r}

下拉选择 Select

内容详情中(show.html) 模板中调用方法是:


选择值:{$字段名} 

选择的名称:     {php $field = dr_field_options(字段ID号);}     {$field[$字段名]} 


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


文本 Text

内容详情中(show.html) 模板中调用方法是:


普通输出:{$字段名}
截取10个字输出:{dr_strcut($字段名, 10, '...')}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


多行文本Textarea

内容详情中(show.html) 模板中调用方法是:


普通输出:{$字段名}
截取10个字输出:{dr_strcut($字段名, 10, '...')}
换行显示:{nl2br($字段名)}




注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]



编辑器 Ueditor

内容详情中(show.html) 模板中调用方法是:


普通输出:{$字段名}
去掉html标签:{dr_clearhtml($字段名)}
去掉html标签再截10个字:{dr_strcut(dr_clearhtml($字段名), 10, '...')} 读取内容字段中的全部图片 {php $imgs = dr_get_content_img($字段名);} {loop $imgs $img} {$img} {/loop} 图片数量:{count($imgs)}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]


联动菜单(多选)Linkages

内容详情中(show.html) 模板中调用方法是:

{loop $字段名 $v}

    联动菜单名称:{dr_linkage('联动菜单别名', $v, 0, 'name')}     联动菜单顶级的名称:{dr_linkage('联动菜单别名', $v, 1, 'name')}     面包屑导航:{dr_linkagepos('联动菜单别名', $v, ' - ')}

{/loop}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]



副栏目 Catids

内容详情中(show.html) 模板中调用方法是:

{loop $字段名 $v}

    栏目名称:{dr_cat_value('模块目录', $v, 'name')}     栏目地址:{dr_cat_value('模块目录', $v, 'url')}

{/loop}



注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]



用户关联 Members

内容详情中(show.html) 模板中调用方法是:


{if $字段名}
{member IN_id=$字段名 return=r}
{$r.id}
{$r.username}
......
{/member}
{else}
没有关联
{/if}


注意:

1、[字段名]需要换成你定义的具体字段英文名称

2、如果在list循环中调用,需要把[字段名]改成[$t.字段名]



自定义字段控件输出代码

字段控件是什么?例如下面这个字段是由系统变量myfield输出的

image.png

上图红色部分是字段实际的输出代码,使用本函数可以输出这部分代码到html中,方便二次开发


字段控件是根据字段的id号来生成



html模板中的格式是:

{dr_fieldform(本字段数组信息, '默认值', '是否移除div区域:1(默认)或0', '是否下载相关依赖js:1或0(默认0,如果js未加载时需要设置1)')}

例如:

{dr_fieldform(\Phpcmf\Service::C()->get_cache('table-field', 99999), '默认内容')}

99999是字段的id

此方法是用来调用任意表的字段



如果在实际需要需求中,我们需要按照自己的样式规格输出字段怎么办?比如不用系统变量调出字段怎么办?

这种需求需要自己手动书写html的form代码了,编写格式主要在于name值的要求,必须和系统生成的name值相同,比如下面代码是系统自动生成的:

    
 * 主题    
    


那么,我们可以随便自定义字段html代码,但是name一定要保持一致:

主题:


这种情况是text类型字段,如果遇到图片上传等等复杂的字段html必须要php高手来写了


最后,还是建议使用官方生成的字段html,这样兼容性更好,不会改动什么地方 

栏目字段调用

栏目字段是指栏目的信息,例如以下界面的全部信息称为栏目字段

{xunruicms_img_title}


调用这些字段,需要在宸逸CMS后台安装《字段标签生成工具》插件,再返回栏目管理列表:

{xunruicms_img_title}

傻瓜式操作,直接复制即可