|
|
这个功能本来是我自己需要的,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一样的搜索功能了。希望这篇文章能帮到大家。 |
|