Destoon · 2018年06月16号 0

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_replace($replacef, $replacet, $r[‘introduce’]);大约在129行左右
在他的下面添加:
if($kw) $r[‘glry’] = str_replace($replacef, $replacet, $r[‘glry’]);
我的自定义字段是glry名是管理人员
到此自定义字段的搜索添加完毕。

这样在搜索界面就会多了一个“管理人员”的选项来搜索,如下图:

destoon自定义自段的添加并让其支持搜索