Kesion CMS 站内搜索功能

    虽然将KesionCMS站内搜索功能成功移植到了自己站点里,但对于它的实现原理、代码、标签并不太懂,所以这次移植成功花了很多时间和精力修改代码,记录下来方便以后使用。

   

     一、每个页面都有的通用搜索框(从 http://bbs.kesion.com/forumthread-654736.html 移植过来的)

        前台效果如图:

    包括三个部分:背景图片、搜索关键字输入框、搜索按钮。鼠标点击搜索框,会清除“输入关键字”这几个字,点其他地方又会显示出来。

      1. 将解压Kesion.Label.SearchCls.rar后得到“Kesion.Label.SearchCls.asp”文件替换科讯“KS_Cls”目录下同名文件。

         文件在附件中下载:Kesion.Label.SearchCls.rar 

      2. 在放置搜索框的位置调用如下代码 

  
  
  
  
  1. <div id="soso">{$GetSearch}</div> 

      3. 在css中定义如下三个样式

         #soso  定义整个搜索框样式

         搜索背景图(路径自行更改):

         #soso .textbox  定义搜索关键词输入框的样式

         #soso .inputButton  定义执行搜索的按钮的样式 

  
  
  
  
  1. <style type="text/css">
  2. #soso {  
  3.        url( /glpi.kindit/images/soso.png) no-repeat;  
  4.                  width:300px;  
  5.                  height:76px; 
  6.                  position:relative; 
  7.                  float:left; 
  8.                  border:none; 
  9.                  margin:10px auto 10px 7px; 
  10. #soso .textbox {  
  11.                 display:block;  
  12.                 width:200px;  
  13.                 height:20px;  
  14.                 line-height:20px;  
  15.                 background:1px red solid;  
  16.                 text-indent:5px;  
  17.                 margin-top:41px; 
  18.                 margin-left:19px; 
  19.                 border:none;  
  20. #soso .inputButton {  
  21.                    display:block;  
  22.                    width:46px;  
  23.                    height:28px;  
  24.                    background:none;  
  25.                    text-indent:-999em;  
  26.                    cursor:pointer; 
  27.                    position:absolute; 
  28.                    left:232px; 
  29.                    top:39px; 
  30.                    border:none;  
  31. </style>
     

     到此,每个页面的通用搜索框完成

    

     二、站内搜索和结果显示模板(需在设置——基本信息设置——模板绑定——全站搜索模板中绑定该模板),

         前台显示效果如图:

       以下是个部分的代码和css样式,由KesionCMS自带的“全站搜索模板”的代码修改而来,调用到“站内搜索模板”中相应的位置即可

       1. 快速搜索框部分

  
  
  
  
  1. <!--快速搜索开始-->  
  2. <div style="text-align:center;height:30px;text-valign:middle;font-size:15px;"> 
  3. <form name="searchbform" action="../../plus/search/" method="get" style="margin-top:8px;"> 
  4. <div class="clear"></div> 
  5. <div> 
  6. <b>快速搜索:</b> 
  7. <input name="key" id="key" size="52" class="i" value="{@search.keyword}" maxlength="100">  
  8. <select name="stype" id="stype">  
  9.   <option value="1">标题</option> 
  10.   <option value="2">内容</option> 
  11.   <option value="3">录入</option> 
  12. </select>  
  13. <input type=hidden name="m" id="m" value="{@search.channelid}"> 
  14. <input style="padding:3px" type="submit" value=" 搜 索 "> 
  15. </div> 
  16. </form> 
  17. </div> 
  18.         <!--快速搜索结束--> 

        2. 搜索结果统计部分

  
  
  
  
  1. <div class="clear"></div> 
  2. <div class="searchbg"> 
  3.    <div class="search">
  4. 搜索"<span style="color:#FF0000">{@search.keyword}</span>",
  5. 本次共找到相关网页约<span style="color:#FF0000">{@search.totalput}</span>条,
  6. 用时<span style="color:#FF0000">{@search.leavetime}</span>
  7. </div> 
  8. </div> 

       3.搜索结果内容部分

  
  
  
  
  1. <div class="clear"></div> 
  2.  <!--搜索页内容开始--> 
  3. <div class="search_left"> 
  4.      <div class="articlesearch"> 
  5.         <div class="search_lstitle">搜索结果</div> 
  6.          {@loop.begin} 
  7.             <ul class="articlesearch_ul"> 
  8.                <li class="articlesearch_li">
  9. <span class="art_title"><a href="{@item.linkurl}" target="_blank">{@item.title} </a></span> 
  10. <span class="class_name">[<a href="{@item.classurl}" target="_blank">{@item.classname}</a>]</span><br /> 
  11.                <span class="artintro">{@item.intro}...</span> <br /> 
  12.                <span class="arturl"><a href="{@item.linkurl}" target="_blank">{@item.linkurl}</a></span> 
  13. <span class="c9">{@item.adddate}</span><br /> 
  14.                </li> 
  15.             </ul> 
  16.         {@loop.end} 
  17.        <div style="clear:both"></div> 
  18.          {@search.showpage} 
  19.        <div style="clear:both"></div>             
  20.     </div>   
  21.      
  22.     <div style="padding-left:10px;height:50px;" class="relatesearch"> 
  23.       <table width="100%" border="0"> 
  24.         <tr> 
  25.           <td width="80" class="xgs">相关搜索:</td> 
  26.           <td align="left"> 
  27.             {@search.relative} 
  28.           </td> 
  29.         </tr> 
  30.       </table>  
  31.     </div> 
  32.            
  33.  </div> 
  34.  <!--搜索页内容结束--> 

     4. 在css中定义以上三个部分的样式

  
  
  
  
  1. <style type="text/css">
  2. .clear { 
  3.         clear:both; 
  4.         height:0px;  
  5.         overflow:hidden; 
  6. .searchbg{ 
  7.           width:630px; 
  8.           margin:0px auto; 
  9.           url( /images/searchbg.gif) no-repeat; 
  10.           height:40px; 
  11. .search{ 
  12.         width:630px; 
  13.         float:left; 
  14.         padding-left:50px; 
  15.         line-height:40px; 
  16. .search_left{ 
  17.              width:100%; 
  18.              float:left;  
  19.              marin:auto; 
  20. .search_lstitle{ 
  21.                 url( /images/icon_01.gif) no-repeat 0px 8px;  
  22.                 padding-left:20px; 
  23.                 font-size:14px; 
  24.                 color:#000;  
  25.                 height:30px; 
  26.                 line-height:30px; 
  27.                 border-bottom:#dcdcdc 1px solid;  
  28.                 font-weight:bold; 
  29. .articlesearch{ 
  30.                padding:10px;  
  31.                padding-top:0px;  
  32. .articlesearch_ul{ 
  33.                   width:620px; 
  34. .articlesearch_li{ 
  35.                   width:620px; 
  36.                   border-bottom:1px dashed #dcdcdc;  
  37.                   margin-bottom:10px; 
  38.                   margin-top:10px; 
  39.                   overflow:hidden; 
  40. .class_name{ 
  41.             font-size:14px; 
  42.             color:#003366 
  43. .class_name a{ 
  44.               font-size:14px; 
  45.               color:#003366; 
  46. .art_title{ 
  47.            font-size:14px; 
  48.            color:#003366; 
  49. .artintro{ 
  50.           line-height:24px; 
  51.           color:#555;  
  52.           letter-spacing:1px;  
  53.           font-size:14px; 
  54. .arturl a{ 
  55.           color:green;font-size:14px; 
  56. .c9 {  
  57.      color:#999999; 
  58. .art_title a { 
  59.               color:blue; 
  60.               font-size:14px; 
  61. .xgs { 
  62.       font-weight:bold; 
  63.       font-size:14px;  
  64.       color:#006699; 
  65. </style>
     

    到此,站内搜索模板就完成了,在:设置——基本信息设置——模板绑定——全站搜索模板 中绑定该模板即可

    以上两个部分完成后,及实现了站内搜索的功能,无论是在通用的搜索框还是在站内搜索模板定义的页面中,输入关键字,开始搜索后,搜索结果都会在站内搜索模板的页面的显示!

    另外,这个站内搜索功能在使用了一天后,发现了一个很严重的问题,即搜索范围不包括自定义表单写入的内容!    

你可能感兴趣的:(站内搜索,KesionCMS)