企业微信服务商
当前位置:首页文档模板语法模型详情页语法说明

模型详情页语法说明

更新时间: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等标签