模型分类页语法说明
更新时间: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
四、模型分类语法说明
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 //简介
{{ Tools.formatDate(d['addtime'],'d M Y') }}//发布时间
coverarr[0] //封面图
linkurl //模型详情链接
tagsArr //标签,数组字段
{{System.getListInfo('#模型标识#')['total']}} //模型下共有X条数据
{{ Tools.getAuthorByid('article',v['authorid'],v['siteid']) }} //调取详情的作者
{{ Tools.formatDetail(v['pcdetail'])['v1'] }} //列表页调取详情内容
使用举例:
{%set z =System.getListInfo('products') %} //产品模型标识
{%for k,v in z['data']%}
<a href="v['linkurl']">{{v['title']}}</a>
{{ Tools.formatDate(d['addtime'],'d M Y') }}
{{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等标签