模型详情页语法说明
更新时间:2019-12-06
一、模型说明
五星云站的模型分为预置模型和自定义模型两种。预置模型为系统模型,自定义模型是复制预置模型添加的。
模型详情的模板在五星云站后台【模板-模板列表-详情模板】处添加。添加后可在编辑模型详情时选择使用。
二、模型标识说明
模型标识是用来识别模型的特有标记,在进行模型数据内容输出时需调用模型标识才能正确的调取数据。系统中预置模型的标识如下:
模型名称
|
模型标识
|
模型名称
|
模型标识
|
|
产品
|
products
|
图库
|
album
|
|
新闻
|
news
|
图片
|
pic
|
|
文章
|
article
|
专题
|
zt
|
|
配件
|
parts
|
视频
|
video
|
|
下载
|
download
|
服务
|
reserve
|
|
问答
|
faq
|
渠道范围
|
channel
|
|
招聘
|
job
|
渠道详情
|
channeld
|
|
三维展厅
|
exhibition
|
三维模型文件
|
exhibitiond
|
三、volt模板引擎语法
四、模型详情通用语法
1.通用字段
1.1通用普通字段调用方式
{{Pageinfo['#字段名称#']}}
详细字段如下:
title //标题
intro //简介
addtime //发布时间
{{Pageinfo['cate']['catename ']}} //当前详情所属分类的名称
{{Pageinfo['cate']['linkurl']}} //当前详情所属分类的url
detailv2 //内容详情
grade //推荐等级
使用示例
<p>模型详情标题: {{Pageinfo['title']}} </p>
<p>简介: {{Pageinfo['intro']}} </p>
<p>发布时间: {{ Tools.formatDate(d['addtime'],'d M Y') }}//可调换年月日的展示顺序,注意字母的大小写不能错误
{% for k,v in Pageinfo['detailv2'] %} //内容详情,若有多个编辑器在['detailv2']后添加0,1……数字编号,可分别调取编辑中的内容
<li>{{ v['title'] }}</li> //详情标题
<p>详情内容 t: </p> {{ v['content'] }} //
{% endfor %}
详
情内容所属分类及分类链接:
一级分类:
{{ Pageinfo['catenav']['cate1']['catename'] }} //一级分类名称
{{ Pageinfo['catenav']['cate1']['linkurl'] }} //一级分类链接
二级分类:
{{ Pageinfo['catenav']['cate2']['catename'] }} //二级分类名称
{{ Pageinfo['catenav']['cate2']['linkurl'] }} //二级分类链接
三级分类:
{{ Pageinfo['catenav']['cate3']['catename'] }} //三级分类名称
{{ Pageinfo['catenav']['cate3']['linkurl'] }} //三级分类链接
SEO信息
{{ Pageinfo['pageseo']['title'] }}
|
--SEO标题
|
{{ Pageinfo['pageseo']['keywords'] }}
|
--SEO关键词
|
{{ Pageinfo['pageseo']['description'] }}
|
--SEO描述
|
1.2通用数组字段调用方式
① tagsformat //标签
使用示例:
{%for k,v in Pageinfo['tagsformat']%}
<a href="{{ v['linkurl'] }}">{{ v['tagname'] }}</a> //标签链接和标签名称
{%endfor%}
②Pageinfo['coverarr'] //图片字段,最多6张图片
Pageinfo['coverarr'][0] //第1张图片
使用示例:
<div>
{%for k, v in Pageinfo['coverarr']%}
<img src="{{v}}">
{%endfor%}
</div>
③{{Pageinfo['relateinfo']['#模型标识#']}} //关联内容
使用示例:
{%if Pageinfo['relateinfo']['news']%}
{%for k, v in Pageinfo['relateinfo']['news']%}
{{v['title']}}
{{v['url']}}
{%endfor%}
{%endif%}
④当前详情关联的模型详情,所关联的其他内容。如当前详情关联了新闻A,新闻A关联了产品B。
则在当前页输出产品B的方法为:
{%for k, v in Pageinfo['relateinfo']['news']%} //关联模型详情的标识,如上面说的新闻
<a href="{{v['linkurl']}}" target="_blank">
<div class="title"><span>{{v['title']}}</span></div>
</a>
{% set abc = System.getRelate('news', v['_id']) %} //#关联模型详情的标识,如上面说的新闻
{%for k1, v1 in abc['products'] %} //被当前详情关联的其他模型详情,所添加的关联内容,如上例产品
<a href="{{v1['linkurl']}}" target="_blank">
<div class="title"><span>{{v1['title']}}</span></div>
</a>
{%endfor%}
{%endfor%}
2.自定义字段
2.1普通自定义字段:文本、下拉框、编辑器
预置模型:{{Pageinfo['extends']['#扩展字段名称#']}}
自定义模型:{{Pageinfo['#扩展字段名称#']}}
特殊下拉框:地域
--在页面中调用地域,前台可通过访客的IP地址来调取相应地域的详情内容。该方法能够正确使用的前提是被调用模型的详情中,使用了地域。
①语法说明
模型详情页调取地域字段:
调取一个地址: {{ Pageinfo['#扩展字段名称#'][0] }}
调取多个地址:
{% for k, v in Pageinfo['#扩展字段名称#'] %}
{{ v }}
{% endfor %}
调取和访客所在地相关的模型内容:
系统模型:System.getAreaData('#模型标识#', [], ['addtime': -1], 10, "#地名#")
自定义模型:Custom.getAreaData('#模型标识#', [], ['addtime': -1], 10,"#地名#")
方法可用范围:模型详情页、模型列表页、普通页面、模板页面、自定义列表页、静态片段、动态片段。
语法说明:
-
[]中可以进一步设置筛选条件
-
-1,按照添加时间倒序调取数据;1,按照添加时间正序调取数据
-
10是一次调取数据的数量,可以进行自定义
-
“#地名#”是用户默认一个数据输出的查询地址,不填将按照访客ip确认输出的数据。地名的输入要与地域下拉列表中的值保持一致。
②使用示例
{% set aaa = System.getAreaData('#模型标识#', [], ['addtime': -1], 10) %}
{%for k,v in aaa %}
{{v['title']}}
{% endfor %}
增加其他限制条件,如推荐等级:
{% set aaa = System.getAreaData('#模型标识#', ['grade':[2]], ['addtime': -1], 2) %}
{%for k,v in aaa %}
{{v['title']}}
{% endfor %}
备注:
-
默认地域的情况下不会根据访客的IP调取数据,只显示默认地域的数据
-
当定位不到访客的IP或定位的IP是国外的,调取全部的数据
2.2多级联动字段
预置模型:{{System.transDropdown(Pageinfo['extends']['#扩展字段名称#'])}}
自定义模型:{{Custom.transDropdown(Pageinfo['#扩展字段名称#'])}}
2.3图片字段
预置模型:
['extends']['#扩展字段名称#']['path']['0'] //返回第一张图片
['extends']['#扩展字段名称#']['path'] //返回全部图片
自定义模型:
['#扩展字段名称#']['path']['0'] //返回第一张图片
['#扩展字段名称#']['path'] //返回全部图片
使用示例:
//预置
{%for k, v in Pageinfo['extends']['扩展字段名称']['path']%}
<div><img src="{{v}}!/both/800x562" alt="{{Pageinfo['title']}}"></div>
{%endfor%}
//自定义
{%for k,v in Pageinfo['扩展字段名称']['path']%}
<div><img src="{{v}}" alt="{{Pageinfo['title']}}"></div>
{%endfor%}
2.4附件字段
预置模型:
{{ Pageinfo["extends"]["#扩展字段名称#"]["fileurl"] }} //调取文件url
{{ Pageinfo["extends"]["#扩展字段名称#"]["fileid"]}} //调取文件id
{{ Pageinfo["extends"]["#扩展字段名称#"]["filename"]}} //调取第一个文件名称
使用示例:
{%set data=Pageinfo['extends']['ceshifujian']%}
<ul>
{%for k,v in data['fileurl']%}
<li><a href="{{v}}">{{data['filename'][k]}}</a></li>
{%endfor%}
</ul>
自定义模型:
{{ Pageinfo["#扩展字段名称#"]["fileurl"]}} //调取文件url
{{ Pageinfo["#扩展字段名称#"]["fileid"] }} //调取文件id
{{ Pageinfo["#扩展字段名称#"]["filename"] }} //调取文件名称
使用示例:
{%set data=Pageinfo['#扩展字段名称#']%}
{%for k,v in data[fileid]%}
<a>{{data['fileurl'][k]}}</a>
{%endfor%}
2.5视频字段
预置模型:Pageinfo['extends']['#扩展字段名称#']
自定义模型:Pageinfo['#扩展字段名称#']
字段中包含:
name //视频名称
version //视频清晰度
base //原始
low //流畅
normal //标清
url //视频链接
使用示例:
{% if Pageinfo['extends']['shipin'] is defined %}
{% for key,val in Pageinfo['extends']['shipin'] %}
<h4>视频标题:{{ val['name'] }}</h4>
<p>默认播放的视频地址:{{ val['url']['base'] }}</p>
<p>流畅视频地址:{{ val['url']['low'] }}</p>
<p>标清视频地址:{{ val['url']['normal'] }}</p>
<p>高清视频地址:{{ val['url']['height'] }}</p>
{% for k,v in val['version'] %}
<a href="javascript:;" title="{{ val['url'][k] }}">{{ v }}</a> //调取视频的清晰度(付费用户)
{% endfor %}
{% endfor %}
{% endif %}
2.6 作者字段
{{ Pageinfo['author'] }}
2.7 图片字段
2.7.1 预置图片字段
①调取封面图
{%for k,v in Pageinfo['coverarr']%}
②调取所有图片
{%for k,v in Pageinfo['coverarr']%}
<img src="{{v}}" width="42" height="42">
{%endfor%}
2.7.2 自定义图片字段:
① 预置模型
<img src="{{Pageinfo['extends']['扩展字段名称']['path'][cover']}}" > //调取封面图
{%for k,v in Pageinfo['extends']['扩展字段名称']['path']%} //调取全部图片
<img src="{{v}}!/both/800*562" alt="{{Pageinfo['title']}}">
{%endfor%}
②自定义模型:
{{Pageinfo['扩展字段名称']['path'][cover]}} //调取封面图
{%for k,v in Pageinfo['扩展字段名称]['path']%} //调取全部图片
<img src="{{v}}" >
{%endfor%}
2.7.3 模型详情关联图库
{{Pageinfo['coverarr'][0][0]}} //图库封面调取
2.8 显示访问量
区别于实际访问量。前台访问时,“显示访问量”根据模型设置处设定的区间随机增加,有助于搜索引擎优化。当随机区间设定为1的时候,显示的访问量即真实的访问量。实际访问量可在模型详情列表进行查看。
系统模型:{{System.getVisitNum('#模型标识#',Pageinfo['_id'])}}
预置模型:{{Custom.getVisitNum('#模型标识#',Pageinfo['_id'])}}
注:若先设置了访问量在区间内随机增加,后又调整回实际访问量。此时的显示访问量在之前虚拟量的基础上进行增加。
2.9 模型详情的上一条下一条
2.9.1 预置模型
System.prev('#模型标识#') //上一条
System.next('#模型标识#') //下一条
System.prev('#模型标识#', ['cateid': Pageinfo['cateid']]) //当前分类下的上一条
System.next('#模型标识#', ['cateid': Pageinfo['cateid']]) //当前分类下的下一条
使用示例:
<div class="prev-page">
{%if System.prev('article')%}
{%set varp= System.prev('article')%}
<a href="{{varp['linkurl']}}" >上一条</a>
<p>{{varp['title']}}</p>
{%else%}
<a href="">没有了</a>
{%endif%}
</div>
<div class="next-page">
{%if System.next('article')%}
{%set varn= System.next('article')%}
<a href="{{varn['linkurl']}}">下一条</a>
<p>{{varn['title']}}</p>
{%else%}
<a href="">没有了</a>
{%endif%}
</div>
2.9.2 自定义模型
Custom.prev('#模型标识#') //上一条
Custom.next('#模型标识#') //下一条
Custom.prev('#模型标识#', ['cateid':Pageinfo['cateid']) //当前分类的上一条
Custom.next('#模型标识#', ['cateid':Pageinfo['cateid']) //当前分类的下一条
使用示例
① 全部内容的上一条下一条:
<div class="prev-page">
{%if Custom.prev('#模型标识#')%}
{%set varp= Custom.prev('#模型标识#')%}
<a href="{{varp['linkurl']}}" >上一条</a>
<p>{{varp['title']}}</p>
{%else%}
<a href="javascript:;">没有了</a>
{%endif%}
</div>
<div class="next-page">
{%if Custom.next('#模型标识#')%}
{%set varn= Custom.next('#模型标识#')%}
<a href="{{varn['linkurl']}}">下一条</a>
<p>{{varn['title']}}</p>
{%else%}
<a href="javascript:;">没有了</a>
{%endif%}
</div>
② 当前分类的上一条、下一条:
{% set cateid = Pageinfo['cateid'] %}
<div class="prev-page">
{%if Custom.prev('#模型标识#',['cateid':cateid])%}
{%set varp= Custom.prev('#模型标识#',['cateid':cateid])%}
<a href="{{varp['linkurl']}}" >上一条</a>
<p>{{varp['title']}}</p>
{%else%}
<a href="">没有了</a>
{%endif%}
</div>
<div class="next-page">
{%if Custom.next('#模型标识#',['cateid':cateid])%}
{%set varn= Custom.next('#模型标识#', ['cateid':cateid])%}
<a href="{{varn['linkurl']}}"> 下一条 </a>
<p>{{varn['title']}}</p> {%else%}
<a href="">没有了</a>
{%endif%}
</div>
五、模型详情特殊语法
1、模型特殊字段
1.1 品牌(仅产品模型)
字段说明:
brandname //产品所属品牌的名称
brandpic //产品所属品牌的Logo
intro //产品所属品牌的简介
使用示例:
<div>
{{Pageinfo['brand']['brandname']}} //仅产品模型。当前产品所属品牌的名称
{{Pageinfo['brand']['brandpic']} //仅产品模型。当前产品所属品牌的Logo
{{Pageinfo['brand']['intro']}} //仅产品模型。当前产品所属品牌的简介
</div>
1.2 属性(仅产品模型)
①输出特定属性名称的值。如类型为输入值、下拉框的属性
{{Pageinfo['property']['#属性名称#']['key']}} //属性名称
{{Pageinfo['property']['#属性名称#']['val']}} //属性值
②属性值的类型为输入区间(循环输出)
{{Pageinfo['property']['#数字区间#']['min']}} //区间最小属性值
{{Pageinfo['property']['#数字区间#']['max']}} //区间最大属性值
{{Pageinfo['property']['#数字区间#']['unit']}} //属性值单位
{{Pageinfo['property']['#数字区间#']['key']}} //属性名称
③输出关键属性
{{Pageinfo['property']['#属性名称#']['color']}} //返回16进制颜色值
④输出添加的所有属性(循环输出)
使用示例:
{%for k,v in Pageinfo['property']%}
<tr>
<td>{{v['key']}}:</td>
<td>{{v['val']}}</td>
</tr>
{%endfor%}
1.3 关联文档 :产品模型、招聘模型(可添加多个文档);下载模型(仅可添加1个文档)
语法:
Pageinfo['docsarr'] //关联文档
使用示例:
{%if Pageinfo['docsarr']%}
{%for k, v in Pageinfo['docsarr']%}
{{v['name']}} //文档名称
{{v['url']}} //文档链接
{%endfor%}
{%endif%}
2.视频模型
①普通视频输出方法(主题包中用此方法)
使用示例:
<div>
视频标题:{{Pageinfo['video']['name']}}<br>
视频链接:{{Pageinfo['video']['url']}}<br>
视频时长:{{Pageinfo['video']['duration']}}<br> //视频时长以秒为单位
</div>
②开通高级版套餐后,视频可以自动转码(主题包中一般不用此方法)
Pageinfo['video_low'] //流畅视频地址
Pageinfo['video_normal'] //标清视频地址
Pageinfo['video_height'] //高清视频地址
备注:若视频未经过转码,调取该三种地址,地址输出为空。
③外部视频资源,如优酷土豆等(主题包中一般不用此方法)
语法:
Pageinfo['videocode'] //外部视频
备注:视频的播放需要视频播放插件才能够正常播放
④详情页调取同分类全部视频:
{% set abc = System.getAllByCateid('video',Pageinfo['cateid']) %}
{%for kk,vv in abc %}
<p>{{vv['title']}}</p>
<p>{{vv['cate']['catename']}}</p>
{%endfor%}
3.下载模型
Pageinfo['downloadcount'] //文档下载次数
{{Tools.fileinfo(Pageinfo['file']['url'])['size']}} //文件大小
{{Tools.fileinfo(Pageinfo['file']['url'])['filetype']}} //文件格式
六、控制规则
①{{ str_replace('#原内容#','#替换内容#','#字段名称#') }} //用新内容把原内容替换掉
使用示例:
{{ str_replace('五星云站','westarcloud',Pageinfo['intro']) }}
原简介内容:五星云站是专业建站工具
替换后:westarcloud是专业建站工具
②{{slice(Pageinfo['#字段名称#'],0,150,'utf-8')}} //设定输出字符长度
③{{strip_tags(Pageinfo['#字段名称#']) }} //去除HTML等标签