关闭

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

标签: 数据库存储
4958人阅读 评论(3) 收藏 举报
分类:

今天看了看模块设置里的自定义字段功能的用法,试着加了个新字段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名是管理人员
到此自定义字段的搜索添加完毕。

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




这样就完成了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1419573次
    • 积分:15400
    • 等级:
    • 排名:第699名
    • 原创:93篇
    • 转载:407篇
    • 译文:2篇
    • 评论:167条
    突破瓶颈
    • ◆分析你所使用的技术其原理和背后运行的机制,这样可以提高你的技术判断力,提高你技术方案选择的正确性;
    • ◆学习大学期间重要的知识, 操作系统原理,数据结构和算法。知道你以前学习都是为了考试,但现在你需要为自己学习,让自己知其所以然;
    • ◆重新开始学习C语言,虽然你在大学已经学过。这不仅是因为你可能需要写PHP扩展,而且还因为,在做C的应用中,有一个时刻关心性能、内存控制、变量生命周期、数据结构和算法的环境;
    • ◆学习面向对象的分析与设计,它是解决复杂问题的有效的方法。学习抽象,它是解决复杂问题的唯一之道。
    最新评论