`

帝国CMS的搜索表单语法规则

 
阅读更多

帝国CMS提供了比较强大的搜索结果调用,你可以按照帝国cms搜索表单制作语法,制作出满足你需求的大部分搜索功能。如果你在你的数据库中有自定义字段,那么可能需要改一下e/search/index.php对form表单提交的数据处理,可以参考文章最后提供的例子。先来看看搜索表单变量说明:

变量名 说明 例子
搜索表单提交地址 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">

下面是一个例子:

01 <table width="320" border="0" cellspacing="1" cellpadding="3">
02 <form name="searchform" method="post" action="/e/search/index.php">
03 <tr>
04    <td>关键字:<input name="keyboard" type="text" size="10"></td>
05    <td>范围:
06       <select name="show">
07       <option value="title">标题</option>
08       <option value="smalltext">简介</option>
09       <option value="newstext">内容</option>
10       <option value="writer">作者</option>
11       <option value="title,smalltext,newstext,writer">搜索全部</option>
12        </select></td>
13 </tr>
14 <tr>
15    <td>栏 目:
16       <select name="classid">
17       <option value="0">搜索全部</option>
18       <option value="1">新闻中心</option>
19       <option value="4">技术文档</option>
20       <option value="22">下载中心</option>
21        </select> </td>
22    <td><input type="submit" name="submit" value="搜索"></td>
23 </tr>
24 </form>
25 </table>

搜索表单多条件并列搜索语法说明

1. 多字段并列搜索:有"字符串"与"数组"两种传递方式

字符串传递为例子:

1 <input type="hidden" name="hh" value="LK">
2 <input type="hidden" name="show" value="title,writer">
3 <input type="hidden" name="keyboard" value="标题,作者">

说明:上面为模糊查询title字段包含"标题"字符或者writer字段包含"作者"的信息

数组传递为例子:

1 <input type="hidden" name="hh" value="LK">
2 <input type="hidden" name="show[]" value="title">
3 <input type="hidden" name="keyboard[]" value="标题">
4 <input type="hidden" name="show[]" value="writer">
5 <input type="hidden" name="keyboard[]" value="作者">

上面为模糊查询title字段包含"标题"字符或者writer字段包含"作者"的信息

2. 多逻辑运算联结符并列搜索

字符串传递为例子:

1 <input type="hidden" name="hh" value="LK,EQ">
2 <input type="hidden" name="show" value="title,writer">
3 <input type="hidden" name="keyboard" value="标题,作者">

说明:上面为模糊查询title字段包含"标题"字符或者writer字段等于"作者"的信息

字符串传递为例子:

1 <input type="hidden" name="show[]" value="title">
2 <input type="hidden" name="hh[]" value="LK">
3 <input type="hidden" name="keyboard[]" value="标题">
4 <input type="hidden" name="show[]" value="writer">
5 <input type="hidden" name="hh[]" value="EQ">
6 <input type="hidden" name="keyboard[]" value="作者">

说明:上面为模糊查询title字段包含"标题"字符或者writer字段等于"作者"的信息。

一个实际例子

表单设计如下:

01 <form action="[!--news.url--]e/search/index.php" method="post"name="searchform" id="searchform">
02 <select name="classid" id="" style="display:none">
03     <option value="59,60,78,79,80,81" selected>全部</option>
04 </select>
05 <input type="hidden" name="show" value="title,myarea,mycategory,smalltext"/>
06 <input type="hidden" name="tempid" value="1" />
07 <table width="100%" cellspacing="0" cellpadding="0" border="0">
08     <tbody>
09         <tr class="even">
10             <td style=" text-align:left;">地区:
11         <select name="area" id="">
12             <option value="">不限</option>
13             <option value="香洲">香洲</option>
14             <option value="吉大">吉大</option>
15             <option value="拱北">拱北</option>
16             <option value="新香洲">新香洲</option>
17             <option value="前山">前山</option>
18             <option value="南屏">南屏</option>
19             <option value="金湾">金湾</option>
20             <option value="斗门">斗门</option>
21         </select>
22          
23           房型:
24         <select name="category" id="">
25             <option value="">不限</option>
26             <option value="58_0">一房</option>
27             <option value="58_1">二房</option>
28             <option value="58_2">三房以上</option>
29             <option value="58_3">公寓</option>
30             <option value="58_4">写字楼</option>
31             <option value="58_5">商铺</option>
32             <option value="58_6">厂房</option>
33         </select>
34             </td>
35             <td> </td>
36         </tr>
37         <tr class="even">
38             <td style=" text-align:left;">时间范围: <input name="starttime"type="text" value="2008-08-08" size="12" onclick="calendar.show(this);" /> 到 <input type="text" id="todayButton" name="todayButton" value=""size="12" onclick="calendar.show(this);" /> (不选则不限时段)</td>
39             <td> </td>
40         </tr>
41         <tr class="even">
42             <td style=" text-align:left;"><input name="keyboard"type="text" size="32" value="" id="keyboard" class="inputText" />   <inputtype="submit" name="Submit22" value=" 搜 索 " /></td>
43             <td></td>
44         </tr>
45     </tbody>
46 </table>
47 </form>

为了可以加入对自定义字段myarea与mycategory的搜索,我们需要对e/search/index.php进行适当改写:

01 $keyboard=$_POST['keyboard'].','.$_POST['area'].','.$_POST['category'];
02 // 这是原来的:$keyboard=$_POST['keyboard'];
03 $keyboardone=0;
04 if(is_array($keyboard))
05 {}
06 elseif(strstr($keyboard,','))
07 {
08     $keyboard=explode(',',$keyboard);
09 }
10 else
11 {
12     $keyboard=trim($keyboard);
13     $len=strlen($keyboard);
14     if($len<$public_r[min_keyboard]||$len>$public_r[max_keyboard])
15     {
16         printerror("MinKeyboard",$getfrom,1);
17     }
18     $keyboardone=1;
19 }

OK,完成。

分享到:
评论

相关推荐

    帝国cms3366小游戏采集规则.

    【帝国CMS3366小游戏采集规则详解】 在互联网领域,内容管理系统的存在极大地简化了网站建设和维护工作,其中帝国CMS作为一款强大的开源系统,深受众多开发者和网站管理员的青睐。而3366小游戏网站作为热门的游戏...

    Rss插件-帝国CMS

    【Rss插件-帝国CMS】是专门为帝国内容管理系统(Empire CMS)设计的一款扩展功能插件,旨在增强系统对RSS(Really Simple Syndication)的支持。RSS是一种互联网内容发布格式,它允许用户订阅网站更新,无需频繁访问...

    帝国CMS7.5后台模板美化版V2.2.5

    帝国CMS7.5后台模板美化版,一款帝国cms的后台模板,帝国cms其实挺好的,只是那个后台,实在是不忍直视,没点功力的朋友看着都头大!这里给大家分享一款帝国CMS美化版的后台,非常的美观大气,重构界面,操作便捷一...

    帝国CMS-结合项列表属性筛选显示代码,以及如何进行操作手册

    我们在使用帝国cms进行开发时,会遇到某个列表需要进行多条件的搜索功能,此时很多小伙伴不知道该如何进行操作,今日就为小伙伴提供改良后的多条件查询,此代码在帝国cms中可实现对应结合项搜索功能,使用帝国cms的...

    帝国cms建站仿站实战教程

    10帝国cms搜索表单的调用 11帝国cms 产品列表页的制作 12帝国cms 分页样式的调整 13帝国cms调用TAG标签 14帝国cms产品详情页的制作 15帝国cms新闻列表页制作 16帝国cms新闻内容页调用 17帝国cms 搜索...

    帝国CMS二级联动插件(ajax下拉列表) 帝国CMS二级联动插件(ajax下拉列表).rar

    帝国CMS是一款在中国广泛应用的内容管理系统(CMS),它以其强大的功能、灵活的扩展性和易于操作的界面深受网站开发者的喜爱。在构建复杂网站时,往往需要实现各种交互效果来提升用户体验,其中二级联动就是一个常见...

    帝国CMS移动端多端同步生成插件

    帝国CMS是一款广泛应用于网站内容管理系统的开源软件,其在行业内以功能强大、灵活性高而著称。本插件——“帝国CMS移动端多端同步生成插件”,是针对帝国CMS系统设计的一款扩展工具,旨在实现网站内容在不同终端上...

    帝国CMS微信扫码支付插件

    帝国CMS微信扫码支付插件是针对帝国CMS内容管理系统开发的一款扩展功能,主要用于集成微信扫码支付方式,以便在网站上提供便捷的在线支付服务。这款插件适用于帝国CMS 7.2和7.5两个版本,确保与这两个版本的系统兼容...

    帝国CMS微信扫码支付接口

    帝国CMS微信扫码支付接口是一种将微信支付功能集成到帝国内容管理系统(EmpireCMS)中的技术实现。微信支付接口是微信官方提供的服务,允许商家通过编程方式与微信支付平台交互,从而实现在线支付功能。而帝国CMS...

    帝国cms管理员密码重置插件

    首先,我们要理解什么是帝国CMS。帝国内容管理系统(EmpireCMS)是一款开源的PHP+MySQL建站系统,广泛应用于各类企业网站、新闻资讯平台以及个人博客等。它提供了强大的内容管理、模板制作和二次开发功能,使得非...

    帝国CMS——会员签到插件.zip

    帝国CMS是一款在中国广泛应用的开源网站管理系统,以其强大的功能和易用性著称。"帝国CMS——会员签到插件.zip" 是一个针对该系统开发的扩展功能,旨在增强会员互动和用户粘性。会员签到插件是许多网站提高用户活跃...

    帝国CMS内容链接付费可见插件

    帝国CMS内容链接付费可见插件是一款专为帝国CMS系统设计的扩展工具,旨在实现网站内容的付费阅读功能。这个插件的出现,使得网站管理员能够将部分有价值的内容进行加密,只有当用户支付相应的费用后才能查看,从而...

    帝国CMS百度主动推送插件

    帝国CMS百度主动推送插件是针对帝国内容管理系统(EmpireCMS)开发的一款功能插件,旨在帮助网站管理员更高效地将网站新产生的内容快速提交给百度搜索引擎,从而提高网站的收录速度和SEO优化效果。这款插件的工作...

    帝国CMS二维码生成插件

    【帝国CMS二维码生成插件】是一款专为帝国CMS系统设计的实用工具,旨在帮助网站管理员在不依赖外部API,如Google API的情况下,快速便捷地生成和集成二维码功能。这款插件简化了二维码生成的流程,使得在自己的网站...

    帝国CMS会员中心签到领积分插件.zip

    【帝国CMS会员中心签到领积分插件】是一款专为帝国CMS内容管理系统设计的扩展功能插件,旨在增强会员互动性和提升用户粘性。通过这个插件,网站的注册会员可以在会员中心进行每日签到,以此获取积分,积分可用于兑换...

    帝国cms+ajax收藏夹增删查插件

    【帝国CMS+Ajax收藏夹增删查插件】是一款专为帝国CMS7.5系统设计的插件,它集成了Ajax技术,使得用户在浏览网站内容时能够方便地进行收藏、删除和查询操作,无需刷新整个页面,提升了用户体验。这款插件的核心功能...

    帝国cms7.5 utf-8版通用api数据接口

    【帝国CMS7.5 UTF-8版通用API数据接口】是针对帝国CMS内容管理系统的一个功能扩展,主要用于实现网站数据的远程调用和交互。这个版本的API接口支持UTF-8编码,确保了多语言环境下的数据正确性。下面将详细阐述相关...

    帝国CMS登录注册万能API

    帝国CMS是一款在中国广泛应用的内容管理系统(CMS),主要用于构建网站和管理网站内容。它的功能强大,适应性强,被许多企业和个人开发者所青睐。"帝国CMS登录注册万能API"指的是该系统提供的用于处理用户登录和注册...

    帝国cms7.2后台layui风模板

    《帝国CMS7.2后台layui风模板解析与应用》 帝国CMS是一款国内广泛使用的开源内容管理系统,以其强大的功能和灵活性深受开发者喜爱。在系统界面设计上,为了提供更好的用户体验,许多开发者选择对后台模板进行优化。...

    帝国地图插件,帝国cms地图插件,ecms地图插件,帝国生成sitemap地图插件

    帝国CMS是一款广泛使用的开源内容管理系统,它为网站管理员提供了丰富的功能和灵活性。...通过熟练掌握和使用这类插件,你可以更好地优化你的帝国CMS站点,使其在搜索引擎中的排名更靠前,吸引更多的访问者。

Global site tag (gtag.js) - Google Analytics