模板制作教程:模板变量
模块表单内容页
变量代码 | 说明 |
{$urlrule} | URL分页变量 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
{$id} | 当前模块表单内容id |
{$index} | 对应的模块内容数组 |
{$catid} | 对应的模块栏目id |
{$form_name} | 表单中文名字 |
{$form_table} | 表单英文名字 |
{$uid} | 当前内容发布者uid |
{$author} | 当前内容发布者账号 |
{$title} | 当前内容标题 |
{$inputtime} | 当前内容发布时间 |
不同自定义字段的写法不一样,具体查看自定义字段的输出标签
http://help.xunruicms.com/102.html
自定义字段输出
1、文本、多行文本、ueditor
内容页:
{$字段名}
循环内:
{$t.字段名} // $t由循环的return决定
2、多文件上传 Files
内容页:
{loop $字段名 $i $c} 标题:{$c.title} 文件原始地址:{dr_get_file($c.file)} 图片缩略图:{dr_thumb($c.file, 200, 200)} {/loop}
循环内:
{loop $t.字段名 $i $c} // $t由循环的return决定 标题:{$c.title} 文件原始地址:{dr_get_file($c.file)} 图片缩略图:{dr_thumb($c.file, 200, 200)} {/loop}
3、单文件字段 Files
内容页:
文件原始地址:{dr_get_file($字段名)} 图片缩略图:{dr_thumb($字段名, 200, 200)}
循环内:
文件原始地址:{dr_get_file($t.字段名)} // $t由循环的return决定 图片缩略图:{dr_thumb($t.字段名, 200, 200)} // $t由循环的return决定
4、联动菜单 Linkage
内容页:
联动菜单名称:{dr_linkage('address', $字段名, 0, 'name')} 联动菜单顶级的名称:{dr_linkage('address', $字段名, 1, 'name')} 面包屑导航:{dr_linkagepos('address', $字段名, ' - ')}
循环内:
// $t由循环的return决定 联动菜单名称:{dr_linkage('address', $t.字段名, 0, 'name')} 联动菜单顶级的名称:{dr_linkage('address', $t.字段名, 1, 'name')} 面包屑导航:{dr_linkagepos('address', $t.字段名, ' - ')}
5、属性参数
内容页:
{loop $字段名 $i $c}{$c.name}:{$c.value}{/loop}
循环内:
{php $t.字段名=dr_string2array($t.字段名);} // 如果自定义查询,需要加这句话,否则可以不加 {loop $t.字段名 $i $c} // $t由循环的return决定{$c.name}:{$c.value}{/loop}
6、组合购买字段 Pays
内容页:
显示价格:¥{dr_sku_price($字段名_sku, 2, ' ~ ')}元 可选商品属性组: {loop $字段名_sku['group'] $gid $gname} {$gname}: {loop $字段名_sku['name'][$gid] $vid $vname} {$vname} {/loop}{/loop}
循环内:
{php $t.字段名_sku=dr_string2array($t.字段名_sku);} 显示价格:¥{dr_sku_price($t[字段名_sku], 2, ' ~ ')}元 可选商品属性组: {loop $t[字段名_sku]['group'] $gid $gname} {$gname}: {loop $[字段名_sku]['name'][$gid] $vid $vname} {$vname} {/loop}{/loop}
7、下拉选择、单选按钮字段 Select Radio
内容页:
选择值:{$字段名称} 选择的名称: {php $field = dr_field_options(字段id号);} {$field[$字段名称]}
循环内:
选择值:{$t.字段名称} 选择的名称: {php $field = dr_field_options(字段id号);} {$field[$t.字段名称]}
8、复选框字段 Checkbox
内容页:
选择值: {loop $字段名称 $value} {$value} {/loop} 选择的名称: {php $field = dr_field_options(字段id号);} {loop $field $name $value} {if in_array($name, $字段名称)} {$value} {/if} {/loop}
循环内:
选择值: {loop $t.字段名称 $value} {$value} {/loop} 选择的名称: {php $field = dr_field_options(字段id号);} {loop $field $name $value} {if in_array($name, $t.字段名称)} {$value} {/if} {/loop}
9、日期时间字段 Date
内容页:
默认时间:{$字段名} 自定义时间:{dr_date($_字段名, 'Y-m-d')} 友好的时间:{dr_fdate($_字段名)}
循环内:
默认时间:{$t.字段名} 自定义时间:{dr_date($t._字段名, 'Y-m-d')} 友好的时间:{dr_fdate($t._字段名)}
10、模块内容关联字段 Re
内容页:
{if $字段} {module module=模块目录 IN_id=$字段 return=r} {$r.title} {/module} {else} 没有关联 {/if}
循环内:
{if $t.字段} {module module=模块目录 IN_id=$t.字段 return=r} {$r.title} {/module} {else} 没有关联 {/if}
11、百度地图字段 BaidMap
内容页:
{dr_baidu_map($字段名, 17, '100%', '400')} 17是显示详情参数,越大,道路越清楚 100%是宽度 400是高度
循环内:
{dr_baidu_map($t.字段名, 17, '100%', '400')}
12、百度编辑器 Ueditor
内容页:
{$字段名} 分页写法 {if $字段名_page} {loop $字段名_page $pageid $pagehtml} {$pageid} {/loop} {/if}
12、图片专用字段
内容页:
{loop $字段名 $i $c} 文件原始地址:{dr_get_file($c)} 图片缩略图:{dr_thumb($c, 200, 200)} {/loop}
循环内:
{loop $t.字段名 $i $c} // $t由循环的return决定 文件原始地址:{dr_get_file($c)} 图片缩略图:{dr_thumb($c, 200, 200)} {/loop}
单页内容页字段前缀是:$page.
栏目列表或封面页面调用栏目字段时前缀是:$cat.
模块表单发布页面
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
{$form} | form控件域,防止跨站提交 |
{$index} | 对应的模块内容数组 |
{$catid} | 对应的模块栏目id |
{$form_name} | 表单中文名字 |
{$form_table} | 表单英文名字 |
{$rt_url} | 提交后返回的URL,默认为当前URL |
{$is_post_code} | 是否有验证码 |
{$myfield} | 自定义字段 |
{$diyfield} | 自定义字段(手动摆放模式) |
模块表单列表页面
变量代码 | 说明 |
{$urlrule} | URL分页变量 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
{$cid} | 当前模块表单内容id |
{$index} | 对应的模块内容数组 |
{$catid} | 对应的模块栏目id |
{$form_name} | 表单中文名字 |
{$form_table} | 表单英文名字 |
分页显示当前模块表单列表:
{mform form=$form_table cid=$index.id page=1 urlrule=$urlrule pagesize=5} URL:{Router::mform_show_url($form_table, $t.id, APP_DIR)} 标题:{dr_strcut($t.title, 60)} 截取60个字符 {/mform} {$pages} 分页样式
网站首页
模板文件
index.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
{$indexc} | 用于判断是否是首页 |
Tag标签页面
模板文件
tag.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
$tag | $tag内容数组 |
$parent | 父词数组 |
$related | 关系循环 |
内容举例
#测试 #-- 内部测试 #-- 公共测试 #-- 什么是测试
1、调用父子关系导航
{loop $related $t}{$t.name}{/loop}
2、调用父词信息
{if $parent} #先判断是否存在父词 {$parent.name} 名称 {$parent.url} 地址 {/if}
3、调用tag详细信息
{if $tag.id} #首先判断tag是否在库中 {$tag.name} 名称 {$tag.content} 内容 {/if}
tag自定义字段,必须加上$tag.前缀,具体查看自定义字段的输出标签
4、调用模块的关联内容
{related module=news field=title,url tag=$tag.tags num=5}{dr_strcut($t.title, 35)}{/related} {$debug}
5、相关内容分页显示
-
{related module=news tag=$tag.tags page=1 pagesize=10 urlrule=$urlrule}
- {dr_strcut($t.title, 35)} {/related}
栏目单页面
模板文件
page.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
{$urlrule} | 分页的URL规则 |
$parent | 上级单页的数组 |
$related | 单页的关系循环 |
{$catid} | 当前栏目单页的id |
{$pid} | 上级单页id |
$pids | 所有上级id |
{$cat.name} | 栏目名称 |
{$cat.dirname} | 目录名称 |
{$child} | 是否包含下级 |
{dr_get_file($thumb)} | 缩略图片 |
自定义字段具体查看自定义字段的输出标签
内容举例
1、调用本栏目基本信息
栏目名称:{$cat.name} 栏目地址:{$cat.url} 栏目缩略图:{dr_get_file($cat.thumb)} SEO标题 {$cat['setting']['seo']['list_title']} SEO关键字 {$cat['setting']['seo']['list_keywords']} SEO描述 {$cat['setting']['seo']['list_description']} .....
2、面包屑导航
{dr_catpos($catid, '', true, ' [name] ')}
4、父栏目信息
栏目名称:{$parent.name} 栏目地址:{$parent.url} 栏目缩略图:{dr_get_file($parent.thumb)} .....
5、顶级栏目信息
栏目名称:{$top.name} 栏目地址:{$top.url} 栏目缩略图:{dr_get_file($top.thumb)} .....
模块栏目列表页面
模板文件
1、栏目封面:模块目录/category.html
2、最终栏目:模块目录/list.html
3、自定义模板:模块目录/自定义文件.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
$cat | 栏目的内容数组 |
$parent | 父栏目数组 |
$top | 顶级栏目数组 |
$related | 栏目的关系循环 |
{$catid} | 栏目id |
{$markid} | 用于导航关联 |
$params | 用于搜索参数 |
栏目自定义字段,必须加上$cat.前缀,具体查看自定义字段的输出标签
http://help.xunruicms.com/102.html
内容举例
1、调用本栏目基本信息
栏目名称:{$cat.name} 栏目地址:{$cat.url} 栏目缩略图:{dr_get_file($cat.thumb)} SEO标题 {$cat['setting']['seo']['list_title']} SEO关键字 {$cat['setting']['seo']['list_keywords']} SEO描述 {$cat['setting']['seo']['list_description']} .....
2、面包屑导航
{dr_catpos($catid, '', true, '[name] > ')}
3、分页调用当前栏目下的数据
{module catid=$catid order=updatetime page=1 return=rs} // 列表分页固定写法不可增加参数 当前行数(从1开始):{$key_rs+1} 当前行数(从0开始):{$key_rs} 标题:{$rs.title} 地址:{$rs.url} 描述:{$rs.description} 截取20字 {dr_strcut($rs.description, 20)} 缩略图剪切: {dr_thumb($rs.thumb, 200, 200)} 判断有无缩略图:{if $rs.thumb}有的{else}没有{/if} 缩略图原图: 判断有无缩略图:{if $rs.thumb} {dr_get_file($rs.thumb)} {else}没有{/if} 时间:{$rs.updatetime} 自定义时间:{dr_date($rs._updatetime, 'Y-m-d')} 所属栏目;{dr_cat_value($rs.catid, 'name')} 栏目地址:{dr_cat_value($rs.catid, 'url')} =====其他字段调用方式:请点击下方《 模块内容在循环中的字段调用方式 》 {/module} 分页数量:栏目管理,找到对应的栏目,点修改,切换到模板选项,设置分页显示数量 分页字符串:{$pages_rs} 调试排错诊断信息:{$debug_rs} (开发者模式下才可用)
如果在循环体内输出模块内容自定义字段输出方法,可以安装免费的插件:https://www.xunruicms.com/shop/app/402.html
4、父栏目信息
栏目名称:{$parent.name} 栏目地址:{$parent.url} 栏目缩略图:{dr_get_file($parent.thumb)} .....
5、顶级栏目信息
栏目名称:{$top.name} 栏目地址:{$top.url} 栏目缩略图:{dr_get_file($top.thumb)} .....
栏目页的模板标签生成工具:https://www.xunruicms.com/doc/code/lists.html
模块内容页面
模板文件
1、栏目封面:模块目录/show.html
2、自定义模板:模块目录/自定义文件.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
$cat | 栏目的内容数组 |
$parent | 父栏目数组 |
$related | 栏目的关系循环 |
$top | 顶级栏目信息数组 |
{$catid} | 栏目id |
{$markid} | 用于导航关联 |
$params | 用于搜索参数 |
{$urlrule} | 内容分页标签值 |
$prev_page | 上一篇数组 |
$next_page | 下一篇数组 |
$tags | 内容的tag插件的数组 |
$kws | 内容关键词搜索链接数组 |
{$title} | 文章标题 |
{$keywords} | 文章关键字 |
{$description} | 文章描述 |
{$hits} | 文章浏览数,固定 |
{$uid} | 作者id |
{$author} | 作者账号 |
{$url} | 文章地址 |
{$inputtime} | 发布时间 |
{$updatetime} | 更新时间 |
{$comments} | 评论数,固定 |
{$favorites} | 收藏数 |
{$avgsort} | 评论平均分 |
{$support} | 支持数量 |
{$oppose} | 反对数量 |
{$donation} | 捐赠总金额 |
{$content} | 文章内容 |
1、点击量累计数显示代码(需要提前加载jquery)
{dr_show_hits($id)}次
2、上下页代码
上一篇:{if $prev_page}{$prev_page.title}{else}没有了{/if}
下一篇:{if $next_page}{$next_page.title}{else}没有了{/if}
3、tag标签关键词代码
{if $tags} {loop $tags $name $url}
4、关键词链接代码(4.5.2以上才支持)
{if $kws} {loop $kws $name $url}
5、栏目信息调用
栏目:{$cat.name} 栏目名称:{$cat.name} 栏目地址:{$cat.url} 栏目缩略图:{dr_get_file($cat.thumb)} 栏目属性seo标题{$cat['setting']['seo']['list_title']} 栏目属性seo关键词{$cat['setting']['seo']['list_keywords']} 栏目属性seo描述词{$cat['setting']['seo']['list_description']}
6、面包屑导航调用
{dr_catpos($catid, '', true, '[name] > ')}
内容自定义字段输出方法,可以安装免费的插件:https://www.xunruicms.com/shop/app/402.html
内容页的模板标签生成工具:https://www.xunruicms.com/doc/code/show.html
模块内容搜索页面
模板文件
1、栏目封面:模块目录/search.html
2、自定义模板:模块目录/自定义文件.html
变量介绍
变量代码 | 说明 |
{$meta_title} | 页面头部标题 |
{$meta_keywords} | 页面头部关键字,采用网站关键字 |
{$meta_description} | 页面头部描述,采用网站描述 |
$cat | 栏目的内容数组 |
$parent | 父栏目数组 |
$related | 栏目的关系循环 |
{$catid} | 栏目id |
{$markid} | 用于导航关联 |
{$urlrule} | 内容分页标签值 |
$get | URL中的参数变量数组 |
$params | 搜索做的参数变量数组 |
{$sototal} | 搜索结果总数据 |
{$searchid} | 搜索结果id,用于查询结果 |
{$search_sql} | 搜索的sql语句,用于排查错误 |
搜索页面的模板标签生成工具:https://www.xunruicms.com/doc/code/search.html
内容举例
1、搜索列表标签循环写法
-----搜索标签参数是固定写法不可增减,pagesize参数是控制每页显示数(可以修改)------ {search module=MOD_DIR id=$searchid total=$sototal order=$params.order catid=$catid page=1 pagesize=5 urlrule=$urlrule return=rs} 当前行数(从1开始):{$key_rs+1} 当前行数(从0开始):{$key_rs} 标题:{$rs.title} 地址:{$rs.url} 描述:{$rs.description} 截取20字 {dr_strcut($rs.description, 20)} 缩略图: {dr_thumb($rs.thumb, 200, 200)} 判断有无缩略图:{if $rs.thumb}有的{else}没有{/if} 时间:{$rs.updatetime} 自定义时间:{dr_date($rs._updatetime, 'Y-m-d')} 所属栏目;{dr_cat_value($rs.catid, 'name')} 栏目地址:{dr_cat_value($rs.catid, 'url')} =====其他字段调用方式:请点击下方《 模块内容在循环中的字段调用方式 》 {/search} 分页:{$pages_rs} 调试排错诊断信息:{$debug_rs} (开发者模式下才可用)
如果显示栏目模型字段,需要加参数more=1
如果在循环体内输出模块内容自定义字段输出方法,可以安装免费的插件:https://www.xunruicms.com/shop/app/402.html
2、调用本栏目基本信息
栏目名称:{$cat.name} 栏目地址:{$cat.url} 栏目缩略图:{dr_get_file($cat.thumb)} .....
3、搜索排序的写法
时间排序 点击排序 评论排序 评分排序 支持量排序 赞助排序
4、各种筛选条件的组合写法可以参考自带的demo模板:
xunruicms安装包 /template/pc/default/home/demo/search.html
循环计数变量序号
module、category、list等全部循环标签都带有序号变量
{module module=aaa} 当前行数(从1开始):{$key+1} 当前行数(从0开始):{$key} 判断是否第一条,{if $is_first}第一条{/if} 判断是否最后一条,{if $is_last}最后一条{/if} {/module}
如果带有return=xx的写法是:
{module module=aaa return=xx} 当前行数(从1开始):{$key_xx+1} 当前行数(从0开始):{$key_xx} 判断是否第一条,{if $is_first}第一条{/if} 判断是否最后一条,{if $is_last}最后一条{/if} {/module}
loop循环写法:
{loop $xx $c} 当前行数(从1开始):{$key_c+1} 当前行数(从0开始):{$key_c} {/loop}
====================
自定义循环计数变量方法,适用于循环体内输出循环次数,比如loop、module、category标签等等
{php $my_key=0;} // 初始化计数变量从0开始 {循环标签开始 .........} 当前数值:{$my_key} {php $my_key++;} // 累加计数变量, 写在【{/】之前 {/循环标签结束}
====================
a-z序号显示方式,适用于循环体内输出循环次数,比如loop、module、category标签等等
{php $arr=range('A','Z');$my_key=0;} // 初始化计数变量从0开始 {循环标签开始 .........} 当前数值:{$my_key} A_Z值:{$arr[$my_key]} {php $my_key++;} // 累加计数变量, 写在【{/】之前 {/循环标签结束}
====================
0和1循环显示方法(此方法由小黄人大佬分享)
{if ($key+1)%2==0}1{else}0{/if}