destoon采集论坛

 找回密码
 立即注册
查看: 299|回复: 3

【教程】将自定义字段添加到搜索

[复制链接]

2

主题

24

回帖

70

积分

注册会员

Rank: 2

积分
70
发表于 2014-8-13 17:02:42 | 显示全部楼层 |阅读模式
这个功能本来是我自己需要的,DT自带的后台没有这个功能,在论坛找了一下,找了很久都没有找到解决方案,于是乎只有自己动手了。研究了DT的搜索部分的代码,发现要实现这个功能其实挺简单的。下面以sell模块举例讲解一下实现的步骤:
1.首先你得在后台新建一个自定义的字段,这里我自己新建的字段名为“bieming”。
2.打开module/sell/search.inc.php文件,用代码编辑器打开。
3.找到第37行:
$dfields = array('keyword', 'title', 'content', 'introduce', 'company', 'brand');
将你的自定义字段名安装他的格式添加到末尾:
$dfields = array('keyword', 'title', 'content', 'introduce', 'company', 'brand', 'bieming');
4.找到第86行:
if($keyword && $MOD['fulltext'] == 1) $condition .= " AND $dfields[$fields] LIKE '%$keyword%'";
将其改成:
if($keyword && $MOD['fulltext'] == 1) $condition .= " AND ($dfields[$fields] LIKE '%$keyword%' OR
$dfields[6]
LIKE '%$keyword%')";
注意红色部分的$dfields[6] 其中的数字6是第37行代码中“bieming”的索引(PS:程序都是以0开始计数的)
5.找到第94行:
if($keyword) $condition .= " AND $dfields[$fields] LIKE '%$keyword%'";
将其改成:
if($keyword) $condition .= " AND ($dfields[$fields] LIKE '%$keyword%' OR $dfields[6] LIKE '%$keyword%')";
6.完成上面的步骤后,你就已经实现了自定义字段的搜索了。如果你还想像title字段一样增加搜索词高亮的话那么就找到121行。在121行下面新增加一行,其代码为:
if($kw) $r['bieming'] = str_replace($replacef, $replacet, $r['bieming']);
7.这样就实现了和DT一样的搜索功能了。希望这篇文章能帮到大家。
回复

使用道具 举报

2

主题

4

回帖

32

积分

新手上路

Rank: 1

积分
32
发表于 2016-12-28 17:04:56 | 显示全部楼层
多谢楼主,受益匪浅

回复 支持 反对

使用道具 举报

71

主题

3537

回帖

8055

积分

论坛元老

Rank: 8Rank: 8

积分
8055
发表于 2016-12-28 17:22:14 | 显示全部楼层
收藏一下
回复 支持 反对

使用道具 举报

57

主题

1729

回帖

4263

积分

论坛元老

Rank: 8Rank: 8

积分
4263
发表于 2016-12-28 17:47:24 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|destoon采集论坛

GMT+8, 2025-11-23 07:06 , Processed in 0.013731 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表