校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢dedecms自定義字段搜索教程

織夢dedecms自定義字段搜索教程

POST TIME:2018-04-22 22:09

之前看到很多人想要自定義字段搜索功能,官方又不給出,而我自己也正需要自定義字段搜索,于是就花了半天時間研究了下DEDE的搜索代碼,終于研究出來了,現在分享給大家
5.1版的還沒用,原因是之前用5.0的改了很多東西,再升級成5.1量太大了,所以這次寫個自定義字段搜索的教程也是適用5.0版,.5.1的也應該類似吧
好了,廢話不多說了,具體操作如下
一:打開你的數據庫,找到dede_full_search這個表,在里面把你自定義的字段添加進表,這里以我的網站為例,我添加了myskill,myexchange,mygoods,myexgoods,這4個字段
二:打開/member/article_add_action.php,找到”//更新全站搜索索引”,在下面的一段代碼中插入剛才添加的4個字段,例:“’myskill’=>$myskill,’myexchange’=>$myexchange,’mygoods’=>$mygoods,’myexgoods’=>$myexgoods”,這里說明一下,前面的’myskill’為你發布文章時添加的自定義字段,后面的為剛才在表dede_full_search中添加的字段(建議在表中添加字段的時候寫成跟你之前字定義的字段一樣)這里最好寫成一樣,可以省去很多麻煩
三:打開/include/inc_arcsearch_view.php,搜索titlekeyword,找到如下代碼
Copy code
if($this->SearchType != “titlekeyword”){
$kwsqlarr[] = ” dede_full_search.title like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” dede_full_search.title like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.addinfos like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.keywords like ‘%$k%’ “;
}
分析下代碼SearchType != “titlekeyword,搜索類型為titilekeyword,即前臺搜索下拉框中的智能模糊搜索,$kwsqlarr[] = ” dede_full_search.title like ‘%$k%’ “;為搜索full_search表中的title字段,好了,知道了這段代碼的作用,我們就知道該如何添加自己的搜索了下面把我的代碼作為例子
Copy code
if($this->SearchType != “skill”){
$kwsqlarr[] = ” dede_full_search.myskill like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.myexchange like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” dede_full_search.myexchange like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.myskill like ‘%$k%’ “;
}
if($this->SearchType != “goods”){
$kwsqlarr[] = ” dede_full_search.mygoods like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.myexchange like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” dede_full_search.myexchange like ‘%$k%’ “;
$kwsqlarr[] = ” dede_full_search.mygoods like ‘%$k%’ “;

}
,因為我的myskill和myexchange2個字段是一起的,而 mygoods和myexgoods是一起的,所以我用了2個if else語句
四:修改搜索框代碼,代碼在哪我就不說了吧,大家都知道在哪,搜索框原代碼為
Copy code
<select name=”searchtype” id=”searchtype”>
<option value=”titlekeyword” selected>智能模糊搜索</option>
<option value=”title”>僅搜索標題</option>
</select>
這里只需修改上面的代碼,修改后的代碼為
Copy code
<select name=”searchtype” id=”searchtype”>
<option value=”skill” selected>搜技能</option>
<option value=”goods”>搜物品</option>
</select>
value=”",這填的是第三步中添加的SearchType后面的,即搜索類型,這個你自己定義
五:還是打開/include/inc_arcsearch_view.php,找到//處理一些特殊字段,把你之前的自定義的字段添加進去,這里還是以我的為例子
在先面添加
Copy code
$row[”myskill”] = $this->GetRedKeyWord(cn_substr($row[”myskill”],$infolen));
$row[”myexchange”] = $this->GetRedKeyWord(cn_substr($row[”myexchange”],$infolen));
$row[”mygoods”] = $this->GetRedKeyWord(cn_substr($row[”mygoods”],$infolen));
$row[”myexgoods”] = $this->GetRedKeyWord(cn_substr($row[”myexgoods”],$infolen));
其實只要添加 $row[”myskill”] = $row[”myskill”];(另外3個我就不寫了,類似)就夠了,但是我為什么要這樣寫呢,這樣寫的作用就是讓你在搜索結果頁調用的時候顯示關鍵子為紅色
六:最后一步了,打開templets/default/search.htm,這里就是搜索頁調用的模版,這里要調用只要[field:你自定義的字段/],還是以我的網站為例[field:myskill/],這樣調用就OK,但是要注意一點,假如你2個字段放一起調用中間最好加個空格或者其他符號,假如[field:myskill/][field:mygoods/]這樣連在一起是顯示不出來的
好了,寫的這么詳細,相信大家應該看的懂吧,雖然有點復雜,不過有總比沒有好,呵呵.


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 邯郸县| 墨竹工卡县| 嵊泗县| 苍溪县| 广昌县| 武威市| 义乌市| 黔江区| 芜湖县| 汽车| 夏邑县| 西林县| 肥乡县| 汕尾市| 荆门市| 岳西县| 永安市| 孟津县| 梁山县| 昭觉县| 贡觉县| 龙江县| 会宁县| 称多县| 正安县| 蛟河市| 弥渡县| 吉安市| 蒙自县| 宣化县| 苏州市| 牡丹江市| 改则县| 成都市| 宁乡县| 逊克县| 湖北省| 北宁市| 酉阳| 巢湖市| 乾安县|