• 注册用户和未注册用户的区别,建议你瞧瞧

西平论坛/XiPing BBS

鸣谢:西平兄弟制片提供影像资源!
情感天地

我们喜欢孤独的感觉,喜欢在孤独中独自享受。当孤独来临的时候,总是会用自己的方式去迎接:冲一杯浓浓的咖啡,细细地品味自己的心境,缓缓地敲打着自己心底的那份淡淡的思念

利用KesionCMS,手把手教你写万能搜索系统

菲帆时间:--热度:210°C
很多科汛fans已对系统自带的的简单搜索感谢不满足了,比如做人才网的用户希望能根据职位类型,工作地点,关键字等进行精确搜索,这时如果用KesionCMS自带搜索标签显然不符合要求.很幸运KesionCMS是完全开源的.您完全可以自由的DIY搜索.这里我就大家举个例子说明吧。 假设我们利用科汛强大的自定义模型自定义了一个叫"人才招聘"的系统,模型ID号为110,基类型(文章类).里面含有自定义字段包括:职位类型(KS_ZWLX),工作地点(KS_GZD),学历要求(KS_XL)等等,那么我们需要按照KS_ZWLX,KS_GZD这两个字段进行搜索.实现如下图效果: 此主题相关图片如下:未标题-1.gif 根据以上分析.我们就可以在模板里写出搜索表单 代码如下
自写表单代码说明: 1、表单处理文件/plus/search.asp 2、必须提交的字段ChannelID(模型ID),SearchType(搜索类型),KeyWord(搜索关键字)    channelid 模型的ID号,可以后台的模模型管理处查到 SearchType 搜索类型,取值说明 1 表示按标题title搜索(这个例子我们定义为职位名称或公司名称) 2 表示按文章内容ArticleContent(这个例子里我们可以定义为职位介绍) 3 表示按作者 4 表示按录入者 100 表示按添加时间 ..... 3、自定义字段 KS_ZWLX,KS_GZD 上面已经完成在模板里的写的搜索表单代码。接下来就是修改下搜索处理文件 /plus/search.asp KesionCMS 对文章系统模型的搜索条件构造函数在/plus/search.asp文件里的Sub ArticleSearch()函数,那么我们就打并找到Sub ArticleSearch() 函数 Sub ArticleSearch() Dim SqlStr,Param Param=" Where Verific=1 And DelTF=0" Select Case SearchType Case 100 If IsDate(KeyWord) Then If CInt(DataBaseType) = 1 Then Param=Param & " And AddDate>='" & KeyWord & " 00:00:00' and AddDate<='" &KeyWord & " 23:59:59'" else Param=Param & " And AddDate>=#" & KeyWord & " 00:00:00# and AddDate<=#" &KeyWord & " 23:59:59#" end if Else Exit Sub End If Case 1 If (FuzzySearch=1) Then For I=0 To Ubound(KeyWordArr) If I=0 Then Param=Param & " And (Title Like '%" & KeyWordArr(i) & "%'" Else Param = Param & " or Title Like '%" & KeyWordArr(i) & "%'" End If Next Else Param=Param & " And (Title Like '%" & KeyWord & "%'" End If Param=Param & ")" Case 2:Param=Param & " And ArticleContent Like '%" & KeyWord & "%'" Case 3:Param=Param & " And Author Like '%" & KeyWord & "%'" Case 4:Param=Param & " And ArticleInput Like '%" & KeyWord & "%'" Case 5:Param=Param & " And KeyWords Like '%" & KeyWord & "%'" Case else if (FuzzySearch=1) Then For I=0 To Ubound(KeyWordArr) If I=0 Then Param=Param & " And (Title Like '%" & KeyWordArr(i) & "%'" Else Param = Param & " or Title Like '%" & KeyWordArr(i) & "%'" End If Next Else Param=Param & " And (Title Like '%" & KeyWord & "%' or Author Like '%" & KeyWord & "%'" End If Param=Param & ")" End Select If ClassID<>"0" Then Param=Param & " And Tid In(" & KS.GetFolderTid(ClassID) & ")" If ChannelID=110 Then Param= Param & " and KS_ZWLX='" & KS.S("KS_ZWLX") & "' and KS_GZD='" & KS.S("KS_GZD") & "'" End If SqlStr="Select * From " & KS.C_S(ChannelID,2) & Param & " Order By ID Desc" Set RS=Server.CreateObject("ADODB.RECORDSET") RS.Open SqlStr,Conn,2,1 上面加红色代码就是我们根据自定义搜索补充的条件。相信有点sql基础的朋友,对这条语句能一目了然吧,不清楚的朋友不好紧,请参考[url]http://bbs.kesion.com/dispbbs.asp?boardid=42&Id=42054[/url] 自定义模型条件对 if channelid=110 then .... end if 请一定要加上if channelid=110 ....这样对原系统功能的搜索就不会影响。您如果有多个自定义模板都想要自己写搜索表单,就在下面接下去写if then end if 条件对吧 搜索结果的模板页就不用我多说了,只需注意在搜索模板页里调用自定义字段格式是{$KS_自定义字段名称}即可. 希望以上的教程能对初学者起到抛砖引玉的作用。非常感谢谢大家一直以来对科汛的支持!真心希望我们的工作能给您带来方便。。。。
楼主
暂时没有跟帖,速度抢沙发吧!
兄弟制片,放大公司的声音

西平人物 .../Person

更多
西平人的自豪 见义勇为的英雄——朱耀峰

2007年7月23日22点30分左右,深圳务工人员(西平县蔡寨街人)朱耀峰和老乡李金坡在深圳市保安区富路立健药厂旁草坪上聊天,突然听到离他们30多米的地方有人叫:打劫了!救命!的喊声,朱耀峰和老乡急忙望去,看到四...

郅恽和郅寿——柏国骄子誉满春秋

古代的西平称为柏国。   但是在称为柏国之前,柏国其实就叫西平。《水经注·氵无水》说:“西陵平夷,故曰西平。”西平县称谓源于此。   从秦置颍川郡、汉置汝南郡始,西平便是天中大地的一部...

中国音协第四届理事陈铭志简介

陈铭志,教授,男,汉族,1925年8月生,河南西平县人。博士,博士生导师。1951年毕业于上海音乐学院,随即留校任教。历任该院作曲指挥系主任、博士生导师、院学术委员会副主席、现代音乐学会会长;中国音乐家协会理事...

华南理工大学研究生导师叶广宇介绍

叶广宇,河南西平县人,男,副教授,硕士生导师,博士。先后在兰州大学、沈阳工业大学、华南理工大学获得学士、硕士、博士学位。1997年至今在华南理工大学从事教学与科研工作,现为华南理工大学中国企业战略管理研究中心成员,河南省西平县经济发展顾问,广州纺织工贸企业集团有限公司顾问。...