当前位置:新闻资讯

织梦cms实现搜索功能

日期:2021-03-17 14:58:54 作者:http://www.zhanmanet.com 浏览量:0

  随着时代的发展,网络上的信息越来越多,人们在网上想要获得有用的信息越来越困难,繁杂的信息催生出了搜索引擎。那么使用织梦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,字符查找&ldquo;获取动态的分页列表&rdquo;,替换成以下代码

  

  /**  

      *  

      * @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中轻松实现搜索功能了。