当前位置:首页文档模板语法模型分类页语法说明

模型分类页语法说明

更新时间:2019-12-06

一、模型说明

模型是五星云站为用户预制的一套根据不同应用场景的数据更新、维护、内容动态调取的完整解决方案,无需用户懂服务器和数据库代码,即能快速的搭建自己的内容系统。
 
五星云站的模型分为预置模型和自定义模型两种。预置模型为系统模型,自定义模型是复制预置模型添加的。
 
模型分类列表的模板在五星云站后台【模板-模板列表-列表模板】处添加。添加后可在编辑模型分类时选择使用。

二、模型标识说明

模型标识是用来识别模型的特有标记,在进行模型数据内容输出时需调用模型标识才能正确的调取数据。系统中预置模型的标识如下:
模型名称
模型标识
 
模型名称
模型标识
产品
products
图库
album
新闻
news
图片
pic
文章
article
专题
zt
配件
parts
视频
video
下载
download
服务
reserve
问答
faq
渠道范围
channel
招聘
job
渠道详情
channeld
三维展厅
exhibition
 
三维模型文件
exhibitiond
 
获取模型标识、名称、类型、当前页URL的语法:
{{globalviewdata['model']}} //模型标识
{{globalviewdata['modelname']}} //模型名称
{{globalviewdata['modeltype']}} // 模型类型
{{globalviewdata['currenturl']}} // 当前页url
 

三、volt模板引擎语法

 
 

四、模型分类语法说明

1.循环输出分类(开发主题包时,根据设计图样式,确定输出到几级分类)
 
1.1 获取分类导航
System.getCateNav('#模型标识#',Pageinfo['_id']) //预置模型
Custom.getCateNav('#模型标识#',Pageinfo['_id']) //自定义模型
1.2 获取同一父级的同级别类
System.getCateOther('#模型标识#',Pageinfo['_id']) //预置模型
Custom.getCateOther('#模型标识#',Pageinfo['_id']) //自定义模型
1.3. 获取该分类下的子分类
System.getCateChildren('#模型标识#',Pageinfo['_id']) //预置模型
Custom.getCateChildren('#模型标识#',Pageinfo['_id']) //自定义模型
1.4 根据cateid获取分类信息
System.getCateById('#模型标识#',Pageinfo['_id'])  //预置模型
System.getCateById('#模型标识#',Pageinfo['_id'])  //自定义模型
示例:
{% set sort = System.getAllCateMultiLevel('products') %}

{% set sortData = System.arraySequence('products',sort, 'displayorder') %}

{% for k, v in sortData %}

{{ v['catename'] }} //一级分类名称

{% if v['children'] %} //判断是否存在子分类(二级分类)

  {% for k1,v1 in v['children'] %}

  {{ v1['catename'] }}<br> //输出二级分类名称

   {% if v1['children'] %} //判断是否存在子分类(三级分类)

      {% for k2,v2 in v1['children'] %}

      {{ v2['catename'] }} //输出三级分类名称

      {% endfor %}

  {% endif %}

  {% endfor %}

{% endif %}

{% endfor %}
 
2.分类SEO信息
变量
描述
{{ Pageinfo['pageseo']['title'] }}
--SEO标题
{{ Pageinfo['pageseo']['keywords'] }}
--SEO关键词
{{ Pageinfo['pageseo']['description'] }}
--SEO描述
3.输出分类下详情内容
3.1 设置数据来源
System.getListInfo('#模型标识#') //预置模型
Custom.getListInfo('#模型标识#') //自定义模型
 
3.2 模型下共有x条数据
{{System.getListInfo('#模型标识#')['total']}} //模型下共有X条数据
 
3.3 设置分页
语法:
{{System.getPageHtml('#模型标识#',#数字#) }} //预置模型。数字控制每页详情数量。
{{Custom.getPageHtml('#模型标识#',#数字#) }} //自定义模型。数字控制每页详情数量。
 
使用示例:
{%set a =System.getListInfo('products',2) %} //产品列表,每页输出2条产品。

{%for k,v in a['data']%}

{{v['title']}}

{%endfor%}

{{System.getPageHtml('products',2) }} //分页控制每页数量。
3.4 分页前台样式(css文件)
① 上下翻页样式为空
上一页类名:.u-paging .prev{display:none;}
下一页类名:.u-paging .next{dispaly:none;}
② 上下翻页样式不为空
上一页类名:.u-paging .prev{background: #eaeaea url("../images/jt.png") no-repeat center center;}
下一页类名:.u-paging .next{background: #eaeaea url("../images/jt_r.png") no-repeat center center;}
上下翻页的样式由前端在CSS文件中自定义
 
③ 设置中间页码数
 
 
 
       
语法:{{System.setPageButtonCount('#模型标识#',#具体数字#) }}
 
使用示例:
{%set a =System.getListInfo('products',2) %}
{%for k,v in a['data']%}{{v['title']}}
{%endfor%}
{{System.setPageButtonCount('#products#',2) }}
{{System.getPageHtml('#products#',2)}}
 
备注:翻页类名固定,不可进行更改
初始状态:
上一页:.u-paging .prev
下一页:.u-paging .next
hover状态:
上一页:.u-paging .prev:hover
下一页:.u-paging .next:hover
 
3.5 模型列表顺序
模型列表默认按照发布时间倒序排列。数据按照发布时间正序调取的方法:(只适用于模型列表)
getListInfo方法前面添加代码:
{{System.setOrder('#模型标识#', ['grade':-1,'addtime':-1])}} //预置模型
{{Custom.setOrder('模型标识', ['grade':-1,'addtime':-1])}} //自定义模型
语法解释:'grade':-1指的是内容按照推荐等级从高到低的顺序排列;'addtime':-1指内容按照添加顺序最新添加的在前进行排列。
 
使用示例:
<div>

{{System.setOrder('article',['grade':-1,'addtime':-1])}}

{%set a =System.getListInfo('article',2) %}

{%for k,v in a['data']%}

{{v['title']}}</br>

{%endfor%}

{{System.getPageHtml('article',2)}}

</div>

 

4.调取内容
4.1 模型通用普通字段
title //标题
intro //简介
{{v['addtime'].toDateTime().format('Y-m-d H:i:s')}} //发布时间
coverarr[0] //封面图
linkurl //模型详情链接
tagsArr //标签,数组字段
{{System.getListInfo('#模型标识#')['total']}} //模型下共有X条数据
{{ Tools.formatDetail(v['pcdetail'])['v1'] }} //列表页调取详情内容
使用举例:
{%set z =System.getListInfo('products') %}  //产品模型标识

{%for k,v in z['data']%}

<a href="v['linkurl']">{{v['title']}}</a>

{{v['addtime'].toDateTime().format('Y-m-d H:i:s')}}

{{v['intro']}}

<img src = "{{v['coverarr'][0]}}" height="96" width="96">

{%for a,b in v['tagsArr'] %}

{{b['tagname']}}

{%endfor%}

{%endfor%}
4.2 模型通用数组字段
①分类
使用示例:
{%set z =System.getListInfo('products') %}

{%for k,v in z['data']%}

{%for a,b in v['cate'] %}

{{b['catename']}} //分类名称

{{b['linkurl']}} //分类url

{%endfor%}

{%endfor%}
②标签
使用示例:

{%set z =System.getListInfo('news') %} //当前是新闻模型列表

{%for k,v in z['data']%}

{%for a,b in v['tagsArr'] %}

<p>标签名称:{{b['tagname']}}</p>
<p>标签详情URL:{{ b['tagurl'] }}</p>

{%endfor%}

{%endfor%}

 

4.3图库模型字段
4.3.1 输出指定图库下全部图片
{{(System.getAllPicById('album', ['albumid':"#图库id#"]))}}
使用示例:
{% set all = System.getAllPicById('album', ['albumid':"5cb547934db67f3fc2290e56"]) %}
{% for k,v in all %}
<a href="{{v['linkurl']}}"  title="{{v['title']}}">
<img src="{{v['coverarr'][0]}}!/both/110x82" alt="{{v['title']}}">                   
</a>
{% endfor %}
4.3.2 输出指定图库下输出图库下多张图片(默认4张)
System.getInsidePic('album',['albumid': #图册id#],4,['sortnum': 1])
注:4:调取数量 (注:缺省值 4)
['sortnum': 1]:调取顺序 (注:缺省值1,后台图片正序序列;-1为倒序)
使用示例:
{%set albumInfo =  System.getListInfo('album')['data']%}
{% for key,value in albumInfo %}
{% set insidePic = System.getInsidePic('album',['albumid':value['_id']]) %}
{% for k,v in insidePic %}
<img src="{{ v['coverarr'][0] }}">
{%endfor%}
{%endfor%}
4.3.3 图库列表,输出图库下图片的数量
  {{ Tools.getCount('album',v['_id']) }}

 

4.4 视频模型字段 

使用举例

{%set z =System.getListInfo('video',12) %}   //视频模型标识,每页12条
{%for k,v in z['data']%}
<a href="{{v['linkurl']}}" target="_blank">
<div class="video_box">
<img src="{{v['coverarr'][0]}}!/both/384x216" alt="{{v['ftitle']}}">
<div class="duration">{{v['video']['duration']}}</div>
</div>
<div class="title">{{v['title']}}</div>
</a>
{%endfor%}

  

4.5自定义字段

①普通自定义字段

['extends']['#扩展字段名称#']  //预置模型

['#扩展字段名称#']           //自定义模型

使用示例:

预置模型:

{%set z =System.getListInfo('article') %}

{%for k,v in z['data']%}

{{v['extends']['#扩展字段名称#']}}

{%endfor%}

自定义模型:

{%set z =Custom.getListInfo('xiangmu') %}

{%for k,v in z['data']%}

{{v['#扩展字段名称#']}}

{%endfor%}

②图片型自定义字段
['extends']['#扩展字段名称#']['0']        //预置模型,返回第一张图片
['extends']['#扩展字段名称#']['path'] //预置模型,返回全部图片
['#扩展字段名称#']['path']['0']           //自定义模型,返回第一张图片
['#扩展字段名称#']['path']               //自定义模型,返回全部图片
使用示例:
预置模型:
{%set z =System.getListInfo('article') %}

{%for k,v in z['data']%}

{%for a,b in v['extends']['123']['path'] %}

{{b}}

{%endfor%}

{%endfor%}

自定义模型:
{%set z =Custom.getListInfo('xiangmu') %}

{%for k,v in z['data']%}

{%for a,b in v['123']['path'] %}

{{b}}

{%endfor%}

{%endfor%}

③多级联动型自定义字段
方法1:返回值 “1级内容/2级内容/3级内容”
{{System.transDropdown(v['extends']['#扩展字段名称#'])}}  //预置模型
{{Custom.transDropdown(v['#扩展字段名称#'])}}            //自定义模型

方法2:返回单级值(暂时只有预置模型有,且模型标识没有更新)

{%set a =News.transDropdown(Pageinfo['extends']['zidingxia'],99)%}

{%for k,v in a%}

{{v}}</br>

{%endfor%}

④附件型自定义字段(数组)
['extends']['#扩展字段名称#']         //预置模型自定义附件字段
['#扩展字段名称#']        //自定义模型自定义附件字段
用法示例:
<div>                                   
  <ul>
{%for a,b in v['extends']['fj']['fileurl']%}
 <li>
  <a href="{{b}}">{{v['extends']['fj']['filename'][k]}}</a>
 </li>
{%endfor%}
</ul>
</div>
⑤视频型自定义字段(数组)
['extends']['#扩展字段名称#']        //预置模型自定义视频字段
['#扩展字段名称#']             //自定义模型自定义视频字段
预置模型使用示例:
{% for a,b in v['extends']['video']['filename'] %} //循环filename,下文可用b输出filename

<a href="{{ v['extends']['video']['fileurl'][k] }}">{{ b }}</a>

{% endfor %}

  或
{% for a,b in v['extends']['video']['fileurl'] %} //循环fileurl,下文可用b输出fileurl

<a href="{{ b }}">{{ v['extends']['video']['filename'][k] }}</a>

{% endfor %}
 
6.输出字段控制
①{{ str_replace('#原内容#','#替换内容#','#字段名称#') }} //用新内容把原内容替换掉
{{slice(Pageinfo['#字段名称#'],0,150,'utf-8')}} //设定输出字符长度
{{htmlspecialchars_decode(v['#字段名称#']) }} //去除HTML等标签