## 多条件搜索 适用范围:全站任意地方均可使用 标签作用:用于执行站内搜索功能 #### 1、最简单的搜索示例 ``` <form action="{pboot:scaction}" method="get"> 关键字:<input type="text" name="keyword" > <button type="submit">搜索</button> </form> ``` 表单提交方式为get. 使用说明: {pboot:scaction} 为搜索提交地址 注意:表单提交方式为get,此表单默认匹配title标题字段 #### 2、定义搜索字段示例 ~~~ <form action="{pboot:scaction}" method="get"> 关键字: <input type="text" name="keyword" > <input type="hidden" name="field" value="title" > <button type="submit">搜索</button></form> ~~~ 或: ~~~ <form action="{pboot:scaction}" method="get"> <select name="field"> <option value="title">内容标题</option> <option value="content">内容详情</option> </select>  关键字: <input type="text" name="keyword" > <button type="submit">搜索</button></form> ~~~ 通过添加隐藏域传递field值来控制搜索的字段,也可以同时设置多个字段,如: value="title|content" ,当然这只是方式之一,后面还有! #### 3、定义更多搜索条件示例 ~~~ <form action="{pboot:scaction}" method="get"> 关键字:<input type="text" name="keyword" > <input type="hidden" name="field" value="title" > <input type="hidden" name="scode" value="2,3" > <button type="submit">搜索</button></form> ~~~ 这里只定义搜索的字段和搜索的分类,其实你可以定义更多数据库中任意可用的字段。如author为admin的:name="author" value="admin",当然你可以使用非隐藏域,那么就相当于综合搜索类型。 如果需要定义的scode分类有多个,可以用逗号隔开,同时需要注意,如果表单传递的分类和字段无效时,要考虑结果页循环是否做了限制。 (V1.3.7+)如果有多个搜索表单想定义不同的结果页模板,那么可以传递searchtpl字段来定义模板页,如: #### 4、多条件综合搜索示例 ~~~ <form action="{pboot:scaction}" method="get"> 内容:<input type="text" name="content" > 标题:<input type="text" name="title" > 作者:<input type="text" name="author" > <input type="hidden" name="scode" value="2,3" > <button type="submit">搜索</button></form> ~~~ 这里自定义了三个字段,其实你可以定义更多数据库中任意可用的字段。 #### 5、搜索结果列表 ~~~ {pboot:search}<a href="[search:link]">[search:title]</a> {/pboot:search} ~~~ 使用说明: 搜索结果页面使用模板search.html num=\* 每页数量,非必填,用于控制分页大小 order=\* 排序方式,非必填,用于输出内容的排序方式,可选:date、sorting、istop、isrecommend、isheadline、visits、likes、oppose等字段,其中sorting为按后台填写的排序,122版本开始支持自定义模式,如:order='date desc,id desc' 、order='sorting desc,id desc',(V1.3.7+)还支持random随机排序 scode=\* 分类编码,非必填,加前面说的方式,此作为第二种限制搜索分类的方式,多个分类用逗号隔开,如: scode='2,3,4' field=\* 字段限制,非必填,在使用了keyword时用于限定匹配的数据库字段,多个字段用竖线隔开即可,如:field='title|content' filter=\*|x,y 数据过滤,非必填,用于对列表内容进行过滤筛选,如:filter=title|ASP,PHP 只显示标题含有ASP和PHP的内容 fuzzy=\* 是否模糊匹配,非必填,可选1或0,1时为默认的模糊匹配,0则关闭 搜索结果默认执行分页,使用内容列表的分页代码即可. #### 6、搜索结果列表可用标签 |[search:n]|序号从0开始| |---|---| [search:i]|序号从1开始| [search:id]|编号| [search:scode]|分类编码| [search:subscode]|副分类编码| [search:sortname]|分类名称 [search:subsortname]|副分类名称| [search:sortlink]|分类链接| [search:subsortlink]|副分类链接| [search:title]|标题| [search:titlecolor]|标题颜色| [search:subtitle]|副标题| [search:author]|作者| [search:source]|来源| [search:link]|链接| [search:outlink]|外部链接| [search:date]|发布日期| [search:ico]|缩略图| [search:pics]|多图| [search:content]|内容| [search:enclosure]|附件| [search:enclosuresize]|附件大小| [search:keywords]|关键词| [search:description]|描述| [search:istop]|是否置顶| [search:isrecommend]|是否推荐| [search:isheadline]|是否头条| [search:visits]|访问数量| [search:likes]|点赞数量| [search:oppose]|反对数量| [search:likeslink]|点赞链接| [search:opposelink]|反对链接|