• 2192阅读
  • 1回复

DEDECMS织梦只搜索指定栏目的方法

楼层直达
DEDECMS织梦只搜索指定栏目的方法 方法如下:在/include/里面arc.searchview.class.php,大体在300行和470行左右有两个sql语句,你在后面加上条件 判断就可以来   I5g!c|#y  
  //统计列表里的记录 S?Uvt?  
$cquery = "Select * From `dede_archives` arc where arc.typeid not in (1,2,3...) and {$this->AddSql}"; !3o]mBH8  
//搜索 wr2F]1bh@  
  $query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule, ^2mCF  
  act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath }k6gO0z  
  from `dede_archives` arc left join `dede_arctype` act on arc.typeid=act.id 7[(<t+  
  where  act.id not in (4,5,,6....) and {$this->AddSql} $ordersql limit $limitstart,$row"; E\~!E20^  
把sql语句换成我这两句,括号里面的是你不搜索栏目的id It8@Cp.dU  
在做企业网站优化(或是说用户体验时)大家一定会碰到这个问题!   xx,|n  
在做企业站时,一定大家都会有,基本企业资料,联系我们以及产品信息。   tVAH\*a,/  
当产品信息达到一定量时就会用到搜索来方便用户查询。可是dedecms(下面简称dede)没有这个功能。只有全站和google搜索。   m[&pR2T  
而我们要的只是搜索指定的几个栏目。如我只要用户搜索我的产品。这是企业最想要的。我的网站就是要把我的产品给客户看再产生订单。   =bb)B(  
这里我就不给大家绕,把代码给大家公布一下。不过只针对一个栏目。不过我想当然我没试过。大家可以把别的想要给搜到的栏目移动到这个顶级栏目不就可以了吗? t%30B^Ii%K  
在plus/search.php   \@*D;-b  
94行前就是 W$u/tRF  
$sp = new SearchView($typeid,$keyword,$orderby,$channeltype,$searchtype,$starttime,$pagesize,$kwtype,$mid); {i:Ayhq~&  
前加入$typeid=xxx; 1&JB@F9!  
xxx就是指定栏目的id RhumNP<M  
  希望对各位有帮助。
只看该作者 安逸沙发  发表于: 2014-12-16
如果通过“内容模型管理 > 自定义搜索”搜索的结果页如果要显示自定义字段,可使用以下方法: 'ka}x~EF  
^u2x26].  
}G "EdhSl  
1。修改puls/advancedsearch.php文件,找到 e)y+]  
>@h#'[z,d  
$query = "select arctype.* FROM $addontable addon dOK]Su  
  left join dede2_arctype arctype on arctype.id=addon.typeid Vry*=X &Q  
  $where $orderby"; VN0KK 1 I  
} else { Rt7l`|g a+  
  $query = "select main.id as aid,main.*,main.description as description1, type.* ;<*USS6X  
from $maintable main (5A8#7a  
left join dede2_arctype type on type.id=main.typeid >xA( *7  
left join $addontable addon on addon.aid=main.id )w5!'W4Z8  
$where  $orderby"; i&p6UU  
>4q6  
"%bU74>  
2.在select后面增加"addon.*," E3(o}O  
|26[=_[q  
修改后应该是 >JA>np  
$query = "select addon.*, arctype.* from $addontable addon ~W={"n?=  
  left join dede2_arctype arctype on arctype.id=addon.typeid >|`1aCg,  
  $where $orderby"; X Ai0lN{,  
} else { :xTm- L  
  $query = "select addon.*,main.id as aid,main.*,main.description as description1, type.* ?S9vYaA$  
from $maintable main +sTPTCLE  
left join dede2_arctype type on type.id=main.typeid p] N/]2rR  
left join $addontable addon on addon.aid=main.id Qg]A^{.1  
$where  $orderby"; ?Ok&,\F@E  
19-V;F@;  
QN?EI: q=  
注意,有两个地方要加,上述标红的地方。测试成功。实站仿站绝对成功 e2K9CE.O  
显示结果要修改模板文件,在plus/advancedsearch.htm,{dede:datalist}中直接调用{dede:field.字段名称/}就OK了
快速回复

限100 字节
安逸网提示:如果您在写长篇帖子又不马上发表,建议存为草稿
 
认证码:
上一个 下一个