织梦DEDE搜索功能实现标题完全精准搜索的方法

时间:2021-11-25
类别:教程 - CMS教程

织梦搜索实现标题完全精准搜索,就是搜索文档标题必须一模一样才有搜索结果

实现教程如下:

1、在 /plus/ 新建一个 so.php 文件。

  1. <?php 
  2.  
  3. require_once(dirname(__FILE__) . "/../include/common.inc.php"); 
  4.  
  5. require_once DEDEINC . "/arc.partview.class.php"
  6.  
  7. if ($title == ''
  8.  
  9.  
  10.     ShowMsg('关键字不能为空!''-1'); 
  11.  
  12.     exit(); 
  13.  
  14.  
  15. $row = $dsql->GetOne("SELECT id FROM `dede_archives` WHERE title = '$title' "); 
  16.  
  17. if (is_array($row)) 
  18.  
  19.  
  20.     $chRow    = $dsql->GetOne("SELECT c.addtable FROM dede_archives AS a LEFT JOIN dede_channeltype AS c ON a.channel=c.id where a.id='{$row['id']}'"); 
  21.  
  22.     $addtable = trim($chRow['addtable']); 
  23.  
  24.     $result   = $dsql->GetOne("SELECT arc.*,addf.* FROM `dede_archives` arc LEFT JOIN `{$addtable}` addf ON arc.id=addf.aid WHERE arc.arcrank>-1 AND arc.id = '{$row['id']}'"); 
  25.  
  26.     $pv       = new PartView(); 
  27.  
  28.     foreach ($result as $k => $v
  29.  
  30.     { 
  31.  
  32.         $pv->Fields[$k] = $v
  33.  
  34.     } 
  35.  
  36.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $cfg_df_style . "/so.htm"); 
  37.  
  38.     $pv->Display(); 
  39.  
  40.  
  41. else 
  42.  
  43.  
  44.     ShowMsg('没有相关记录!''-1'); 
  45.  
  46.  
  47. exit(); 

2、你的模板文件夹里添加1个 so.htm 模板文件

例如 /templets/default/so.htm

  1. <div> 
  2.  
  3.     <p>标题:{dede:field.title /}</p> 
  4.  
  5.     <p>缩略图:{dede:field.litpic /}</p> 
  6.  
  7.     <p>品牌:{dede:field.pinpai /}</p> 
  8.  
  9.     <p>货号:{dede:field.huohao /}</p> 
  10.  
  11.     <p>价格:{dede:field.jiage /}</p> 
  12.  
  13.     <p>内容:{dede:field.body /}</p> 
  14.  
  15. </div> 

可调用所有字段包括自定义字段

3、前台模板搜索框代码

  1. <form  method="post" action="{dede:global.cfg_cmspath/}/plus/so.php" > 
  2.  
  3.     <div id="search_box"
  4.  
  5.         <p>标题精准搜索:<input type="text" name="title" value="" /></p> 
  6.  
  7.         <input type="submit" name="submit" value="开始搜索"  /> 
  8.  
  9.     </div> 
  10.  
  11. </form> 

注意:name="title"   不是 name="q"。

    收藏