当前位置:主页 > 新闻资讯 >

织梦cms实现搜索功能

日期:2021-03-17 作者:栈码网络 来源:http://www.zhanmanet.com 浏览量:
  随着时代的发展,网络上的信息越来越多,人们在网上想要获得有用的信息越来越困难,繁杂的信息催生出了搜索引擎。那么使用织梦cms建站如何增加站内搜索功能呢?总的来讲分为三步,让您轻松搞定搜索功能。
 
  
  第一步:添加搜索表单到header.htm
  
  <form action="{dede:global.cfg_cmsurl/}/plus/search.php" type="get">  
     <input type="text" placeholder="请输入要搜索的内容" name="q" >  
     <input type="hidden" value="titlekeyword" name="searchtype" >  
     <input type="submit" name="" value="搜索">  
  </form>
  
  添加到header.htm,这样有利于全局调用。
  
  第二步:新建search.htm模板
  
  新建search.htm模板,列表调用标签
    
  {dede:list  titlelen="200" }  
      <li>  
       <a href="[field:arcurl /]">[field:title /]</a>  
        <span>[field:pubdate function="myDate('Y-m-d',@me)" /]</span> 
    </li>  
   {/dede:list}
  
  或者复制list_article.htm,重命名为search.htm,因为搜索页面的样式跟新闻列表的页面基本相同。
  
  第三步:修改分页
  
  织梦cms的搜索页分页依然使用<table>标签,即不受css控制,也不利于SEO优化,所以我们要将分页修改为<li>标签。
  
  找到搜索页分页控制代码,include/arc.searchview.class.php,字符查找“获取动态的分页列表”,替换成以下代码
  
  /**  
      *  
      * @access    public  
      * @param     string  $list_len  列表宽度  
      * @return    string  
  */  
  function GetPageListDM($list_len)  
  {  
      global $oldkeyword;  
      $prepage="";  
         $nextpage="";  
      $prepagenum = $this->PageNo - 1;  
      $nextpagenum = $this->PageNo + 1;  
      if($list_len=="" || preg_match("/[^0-9]/", $list_len))  
      {  
          $list_len=3;  
      }
      $totalpage = ceil($this->TotalResult / $this->PageSize);
      if($totalpage<=1 && $this->TotalResult>0)
      {
          return "共1页/".$this->TotalResult."条记录";
      }
      if($this->TotalResult == 0)
      {
          return "共0页/".$this->TotalResult."条记录";
      }
      $purl = $this->GetCurUrl();
      $oldkeyword = (empty($oldkeyword) ? $this->Keyword : $oldkeyword);
      //当结果超过限制时,重设结果页数
      if($this->TotalResult > $this->SearchMaxRc)
      {
          $totalpage = ceil($this->SearchMaxRc/$this->PageSize);
      }
      $infos = "<li>找到<b>".$this->TotalResult."</b>条记录/只显示<b>{$totalpage}</b>页 </li> ";
      $geturl = "keyword=".urlencode($oldkeyword)."&searchtype=".$this->SearchType;
      $hidenform = "<input type='hidden' name='keyword' value='".rawurldecode($oldkeyword)."'> ";
      $geturl .= "&channeltype=".$this->ChannelType."&orderby=".$this->OrderBy;
      $hidenform .= "<input type='hidden' name='channeltype' value='".$this->ChannelType."'> ";
      $hidenform .= "<input type='hidden' name='orderby' value='".$this->OrderBy."'> ";
      $geturl .= "&kwtype=".$this->KType."&pagesize=".$this->PageSize;
      $hidenform .= "<input type='hidden' name='kwtype' value='".$this->KType."'> ";
      $hidenform .= "<input type='hidden' name='pagesize' value='".$this->PageSize."'> ";
      $geturl .= "&typeid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
      $hidenform .= "<input type='hidden' name='typeid' value='".$this->TypeID."'> ";
      $hidenform .= "<input type='hidden' name='TotalResult' value='".$this->TotalResult."'> ";
      $purl .= "?".$geturl;
      //获得上一页和下一页的链接
      if($this->PageNo != 1)
          {
              $prepage.="<li><a href='".$purl."PageNo=$prepagenum'>上一页</a></li> ";
              $indexpage="<li><a href='".$purl."PageNo=1'>首页</a></li> ";
          }
      else
      {
          $indexpage="<li>首页</li> ";
      }
      if($this->PageNo!=$totalpage && $totalpage>1)
      {
          $nextpage.="<li><a href='".$purl."PageNo=$nextpagenum'>下一页</a></li> ";
          $endpage="<li><a href='".$purl."PageNo=$totalpage'>末页</a></li> ";
      }
      else
      {
          $endpage="<li>末页</li> ";
      }
  //获得数字链接
  
  通过以上的三步,我们就可以在织梦cms中轻松实现搜索功能了。