destoon模块自定义字段的添加并让其支持搜索的方法

 
今天看了看模块设置里的自定义字段功能的用法,试着加了个新字段glry,设置了值,然后去数据库moduleid的article表看,字段成功加上了。

于是去template下article文件夹的list.htm和show.htm里调看看能不能调得到,结果无论是用{$t[glry]}还是{$glry}这样都调不出来,就奇怪了,模块的fileds都以

字符串的方式存储在$MOD[fields]里,试着打印出来一看,竟然没有新加的glry字段在里面,难怪取不到了。网上查了下,原来新加了自定义字段还要自己手动到“模块设置-》基本设置”里把自定义的字段加到“列表或搜索主字段”这一项里,加好后,都可以成功调到了。

自定义字段是默认不支持搜索的,但很多情况下需要它支持搜索,网上搜到一个方法可以使它支持搜索,方法如下:

以sell模块为例,假设你在后台模块设置里添加了一个”glry”字段

 

module/sell/search.inc.php 

其他模块一样 

1、搜索:$L[‘by_brand’]  大约在31行   后面添加你字段的名称,可以直接为汉字 例如:

$sfields = array($L[‘by_auto’], $L[‘by_title’], $L[‘by_content’], $L[‘by_introduce’], $L[‘by_company’], $L[‘by_brand’],’管理人员’);

2、在他下面那行 

$dfields = array(‘keyword’, ‘title’, ‘content’, ‘introduce’, ‘company’, ‘brand’);

修改为 

$dfields = array(‘keyword’, ‘title’, ‘content’, ‘introduce’, ‘company’, ‘brand’, ‘glry’); 其中的钢材为自定义的字段名称

3、搜索:if($kw) $r[‘introduce’] = str_replac($replacef, $replacet, $r[‘introduce’]);大约在129行左右

在他的下面添加:

if($kw) $r[‘glry’] = str_replac($replacef, $replacet, $r[‘glry’]);

我的自定义字段是glry名是管理人员

到此自定义字段的搜索添加完毕。