建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > 织梦教程 > 二次开发 >

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

更新时间:2015-10-10整理编辑:建站学习网阅读:0
  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/]这样连在一起是显示不出来的好了,写的这么详细,相信大家应该看的懂吧,虽然有点复杂,不过有总比没有好,呵呵。

本文网址:https://www.dedexuexi.com/dedejiaocheng/eckf/367.html

文章搜集与网络,如有侵权请联系本站,转载请说明出处。

收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

  • 支付宝打赏
    微信打赏
dedecms5.7 tag长度限制修改
« 上一篇2015年09月24日
织梦列表页和内容页修改分页样式
2015年09月24日下一篇 »
  • 织梦DedeCMS列表页第一页跟其它页使用不同模板的办法
    0阅读
    有时候我们需要让织梦列表页的第一页跟第二页以及后面的页面的展示效果不同,使用不同的模板,但是目前网上也没有其他比较好的方案,那么下面织梦学习网就给大家介绍一个最简单的办法
  • 织梦dedecms自定义表单导出到excel
    0阅读
    导出效果 不写死任何字段,不写死任何东西,修改2个文件,让织梦自定义表单自由导出到Excel表格里。 教程开始 1、\ dede\templets\diy_main.htm 找到前台预览在它的下面加入一行 a href=diy_list.php?action=exceldiyid={dede:fie...
  • 织梦dedecms后台自定义表单添加搜索功能
    0阅读
    自定义表单搜索效果 当你的自定义表单数据过多或者需要查询某个单时,给后台的自定义表单加个简单的搜索功能很有必要。 1、打开 \dede\templets\diy_main.htm 找到 内容列表/div 在它的下面加入 div class=bodytitletxt style=padding-lef...
  • 织梦dedecms地区联动在当前页面title加入选择的地区名
    0阅读
    织梦分类信息模型在列表页选择地区联动时,想要在title北京市东城区学院 - 我的网站/title 或者 title广东省广州市白云区学院_我的网站/title 效果展示 打开 \include\arc.sglistview.class.php 找到 $this-Fields[typeid] = $...
  • 织梦CMS中添加一个函数来实现任意字段的调用
    0阅读
    我们在使用织梦建站的时候,很多情况下,因为Dede底层模版的限制,我们在文章页、列表页和频道页面中想要调用一些相关的字段会有所限制,所以就想写一个函数来实现在任意页面对任意字