搜索语法说明
更新时间:2019-12-10
一、 搜索模板使用流程
①在模型设置中配置可搜索范围;
②在默认模型搜索模板中编辑搜索代码。
二、搜索页语法
/search //搜素表单提交地址
System.getSearchAllow() //获取被允许搜素的内容
{{ Urlparam['wd'] }} //搜索关键词
System.setOrder('#模型标识#',['grade':-1,'addtime':-1]) //搜索列表页的排序方式。grade为推荐等级,addtime为添加时间。-1为倒序,1为正序。
System.getSearchListinfo('#模型标识#') //搜索列表页的数据
System.getSearchPageHtml('#模型标识#',#每页数量#) //搜索结果的分页
System.emKeyword(value['title'],Urlparam['wd']) //标题中关键词高亮。若想要简介中的关键词也高亮显示,把'title'替换成'intro'
{{ #字段#['total'] }} //某个字段的搜素结果数
使用案例:
{{ System.setOrder('news',['grade':-1,'addtime':-1]) }}
{% set z = System.getSearchListinfo('news',16) %}
{% for k,v in z['data'] %}
{{v['title']}}
{% endfor %}
{% for k,v in z['data'] %}
{{v['title']}}
{% endfor %}
{%if data['total'] > 16 %}
{{System.getSearchPageHtml('news',16) }}
{%endif%}
{{System.getSearchPageHtml('news',16) }}
{%endif%}
三、备注
①目前,模型的搜索模板只能在默认模板中进行修改,新增的搜索模板无效;
②属性筛选在模型设置处选中,即可在前台按照属性值进行筛选,特别的,属性不能按照区间进行筛选。
四、可输出的字段
1.普通字段
title //标题
intro //简介
coverarr[0] //封面图
cate //数组字段,可调取内容包括catename 和 linkurl
{{v['addtime'].toDateTime().format('Y-m-d H:i:s')}} //发布时间
{{v['grade']}} // 推荐等级
{{ Tools.formatDetail(v['pcdetail'])['v1'] }} //内容详情字段的调取
2.普通自定义字段
语法:
['extends']['#扩展字段名称#'] //预置模型
['#扩展字段名称#'] //自定义模型
使用示例:
//预置模型:
{%set data =System.ListInfo('article') %}
{%for k,v in data['data']%}
{{v['extends']['#扩展字段名称#']}}
{%endfor%}
//自定义模型:
{%set data =Custom.getListInfo('xiangmu') %}
{%for k,v in data['data']%}
{{v['#扩展字段名称#']}}
{%endfor%}
3.图片型自定义字段
语法:
['extends']['#扩展字段名称#']['0'] //预置模型,返回第一张图片
['extends']['#扩展字段名称#']['path'] //预置模型,返回全部图片
['#扩展字段名称#']['path']['0'] //自定义模型,返回第一张图片
['#扩展字段名称#']['path'] //自定义模型,返回全部图片
使用示例:
//预置模型:
{%set data =System.getListInfo('news') %}
{%for k,v in data['data']%}
{%for a,b in v['extends']['tp']['path'] %}
<img src="{{v['coverarr'][0]}}!/fw/200" ></a>
{%endfor%}
{%endfor%}
//自定义模型:
{%set z =Custom.getListInfo('xiangmu') %}
{%for k,v in z['data']%}
{%for a,b in v['123']['path'] %}
{{b}}
{%endfor%}
{%endfor%}
4.附件型自定义字段(数组)
语法:
['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>
5.视频型自定义字段(数组)
语法:
['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 %}
搜索模板使用示例
以“产品”为例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div>
<div >
<form action="/search" autocomplete="off"> //搜索提交地址,固定
<button>搜素</button>
<input type="text" placeholder="{{ Urlparam['wd'] }}" value="{{ Urlparam['wd'] }}" name="wd">
</form>
</div>
</div>
<div>
{% set proRes = System.getSearchListinfo('products') %}
<div>
<div>
{% for key,value in proRes ['data'] %}
<div><a href="{{ value['linkurl'] }}">{{ System.emKeyword(value['title'],Urlparam['wd']) }}</a></div>
{% endfor %}
</div>
<label>标签:</label>
{% for a,b in v['tagsArr'] %} {{b['tagname']}} {% endfor %}
文本:{{v['extends']['zz']}} <br>
编辑器:{{v['extends']['bjq']}} <br>
下拉框:{{v['extends']['xlk']}} <br>
图片:
{%for a,b in v['extends']['tp']['path'] %}
<img src="{{v['coverarr'][0]}}!/fw/200" ></a>
{%endfor%}
<br>
附件:
<div>
<ul>
{%for a,b in v['extends']['fj']['fileurl']%}
<li>
<a href="{{b}}">{{v['extends']['fj']['filename'][k]}}</a>
</li>
{%endfor%}
</ul>
</div>
<br>
多级联动:{{System.transDropdown(v['extends']['djld'])}}<br>
视频:
{% for a,b in v['extends']['sp']['fileurl'] %}
<a href="{{ b }}">{{ v['extends']['sp']['filename'][k] }}</a>
{% endfor %}
</div>
<div class="search-count fr">
<p>找到符合“ <span>{{ Urlparam['wd'] }}</span> ”的{{ proRes ['total'] }}个搜索结果
</div>
<div>
</div>
{{System.getSearchPageHtml('products') }}
</div>
</div>
</body>
</html>