帝国系统提供了比较强大的搜索功能,有一般搜索和全站搜索,这里介绍一般搜索,个人觉得一般搜索更方便也足够满足需求,因为全站搜索比较繁琐。
先看一下表单语法规则
变量名 | 说明 | 例子 |
搜索表单提交地址 | POST方式:/e/search/index.php | <form name="searchform" method="post" action="/e/search/index.php"> |
GET方式:/e/search/?searchget=1 | /e/search/?searchget=1&keyboard=帝国&show=title | |
keyboard | 搜索关键字变量 | <input name="keyboard" type="text"> |
show | 搜索字段变量(多个字段用","格开。搜索字段必须是后台模型开启搜索的字段) | <input type="hidden" name="show" value="title,newstext"> |
classid | 搜索栏目ID(不设置为不限,多个栏目可用","格开,设置父栏目会搜索所有子栏目) | <input type="hidden" name="classid" value="1"> |
ztid | 搜索专题ID(不设置为不限,多个专题可用","格开) | <input type="hidden" name="ztid" value="1"> |
tbname | 按数据表搜索(需与搜索模板ID结合) | <input type="hidden" name="tbname" value="news"> |
tempid | 所用搜索模板ID(一般跟按表搜索结合使用) | <input type="hidden" name="tempid" value="1"> |
starttime与endtime | 分别为搜索发布起始时间与结束时间的信息(不填为不限.格式:2008-02-27) | <input name="starttime" type="text" value="0000-00-00" size="12"> <input name="endtime" type="text" value="0000-00-00" size="12"> |
startprice与endprice | 分别为商品价格的起始价格与结束价格(不填为不限) | <input name="startprice" type="text" value="0" size="6"> <input name="endprice" type="text" value="0" size="6"> |
搜索特殊字段 | id : 按信息ID搜索 keyboard : 按关键字搜索(可实现按tags列出信息) userid : 按发布者用户ID搜索 username : 按发布者用户名搜索 |
<input type="hidden" name="show" value="keyboard"> |
member | 值为0则不限制 值为1则为只搜索会员投稿的信息 值为2则为只搜索管理员增加的信息 |
<input type="hidden" name="member" value="1"> |
orderby | 排序字段: 0:按发布日期(默认) 1:按ID 2:按评论数 3:按浏览人气 4:按下载数 |
<input type="hidden" name="orderby" value="1"> |
myorder | 排序方式: 0:倒序排列(默认) 1:顺序排列 |
<input type="hidden" name="myorder" value="1"> |
andor | 设置多条件查询之间关联关系,有两种: or : 或者的关系(默认) and : 并且的关系 |
<input type="hidden" name="andor" value="and"> |
hh | 逻辑运算联结符变量: LT : 小于 GT : 大于 EQ : 等于 LE : 小于等于 GE : 大于等于 NE : 不等于 IN : 包含(搜索关键字用空格隔开每个值) BT : 范围,两个值之间(搜索关键字用空格隔开两个值) LK : 模糊查询(默认) |
<input type="hidden" name="hh" value="LK"> |
以下是我的最常用的搜索表单提交
<form action="[!--news.url--]e/search/index.php" method="post" name="searchform" id="searchform">
<input name="keyboard" id="keyboard" class="input_text" value="请输入关键字词" style="color: rgb(153, 153, 153);" onfocus="if(value=='请输入关键字词'){this.style.color='#000';value=''}" onblur="if(value==''){this.style.color='#999';value='请输入关键字词'}" type="text">
<input name="show" value="title,smalltext,writer" type="hidden">
<input name="tempid" value="1" type="hidden">
<input name="tbname" value="news" type="hidden">
<input name="Submit" class="input_submit" value="搜索" type="submit">
</form>
忽略掉css看帝国系统的语法
<form action="[!--news.url--]e/search/index.php" method="post" name="searchform" id="searchform">//是必须要填的,保持一样即可。
搜索框的input提交 name="keyboard" id="keyboard" 要保持这两个
提交按钮时用的type="submit"是必须的。name属性也可以为name="Submit"
规则使用以下3个即可应付大多情况
<input name="show" value="title,smalltext,writer" type="hidden"> //搜索的关键字匹配标题,文章简介,作者
<input name="tempid" value="1" type="hidden"> //使用的搜索模板id,这个必须要正确,否则会一直搜索不出
<input name="tbname" value="news" type="hidden"> //使用的搜索数据模型,一般博客用新闻数据表模型news
id查看方法:模板——管理搜索模板
(每一个终极栏目都可以设置搜索模板,建议统一个默认的搜索模板)
本文转载自:轻语分享www.caihonggudu.cn