dedecms如何实现自定义字段搜索

dedecms如何实现自定义字段搜索,第1张

概述dedecms自定义字段搜索功能实现步骤如下: 一:打开你的数据库,找到dede_full_search这个表,在里面把你自定义的字段添加进表,这里以我的网站为例,我添加了myskill,myexchange,mygoods,myexgoods,这4个字段 二:打开/member/article_add_action.php,找到//更新   Dedecms自定义字段搜索功能实现步骤如下:  一:打开你的数据库,找到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,找到如下代码
  if($this->SearchType != "Titlekeyword")  {$kwsqlarr[] = " ying_full_search.Title like '%$k%' ";  }else{  $kwsqlarr[] = " ying_full_search.Title like '%$k%' ";  $kwsqlarr[] = " ying_full_search.addinfos like '%$k%' ";  $kwsqlarr[] = " ying_full_search.keywords like '%$k%' ";  }
  分析下代码SearchType != "Titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = " ying_full_search.Title like '%$k%' ";为搜索full_search表中的Title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了下面把我的代码作为例子
  if($this->SearchType != "skill"){  $kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";  $kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";  }else{  $kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";  $kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";  }  if($this->SearchType != "goods"){  $kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";  $kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";  }else{  $kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";  $kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";}
  因为我的myskill和myexchange2个字段是一起的,而mygoods和myexgoods是一起的,所以我用了2个if else语句  四:修改搜索框代码,代码在哪我就不说了吧,大家都知道在哪,搜索框原代码为
  <</b>select name="searchtype" ID="searchtype">  <</b>option value="Titlekeyword" selected>智能模糊搜索  <</b>option value="Title">仅搜索标题  <</b>/select>
  这里只需修改上面的代码,修改后的代码为
  <</b>select name="searchtype" ID="searchtype">  <</b>option value="skill" selected>搜技能  <</b>option value="goods">搜物品  <</b>/select>  value="",这填的是第三步中添加的SearchType后面的,即搜索类型,这个你自己定义
  五:还是打开/include/inc_arcsearch_vIEw.PHP,找到//处理一些特殊字段,把你之前的自定义的字段添加进去,这里还是以我的为例子在先面添加
  $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/]这样连在一起是显示不出来的好了,写的这么详细,相信大家应该看的懂吧,虽然有点复杂,不过有总比没有好,呵呵。 总结

以上是内存溢出为你收集整理的dedecms如何实现自定义字段搜索全部内容,希望文章能够帮你解决dedecms如何实现自定义字段搜索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/1040985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存