瞎忙半天的drupal hook

最近一个多月持续奋战,状态下降得厉害。

今天要修复一个问题:表用theme table所出,用户在表的头部可以选择排序字段。某字段的内容是排名,包含null空值,但用户想看到null排最后,而mysql的null是排最前的。


于是找到解决order by 的时候用isnull(field),field asc。

考虑到数据来源是db_select,那么很直接的想法是hook_query_alter中改这个order by。

但是神志不清的情况,鬼使神差的在原来编辑开的.inc文件中写了个module_query_alter的函数,试来试去都出不了效果,于是debug进去看query执行的机理,发现hook_query_alter根本没有被调用,找来找去,怀疑是没有Tag的问题,于是query->addTag('xxxx'),还是不行,继续调试,发现$implementations = &$drupal_static_fast['implementations'];后,query_alter根本没有被当前模块hook进去。

于是烦恼,清cache,重启apache,重启电脑.....不停google。


夜了,冲凉,突然恍然大悟,我在编辑.inc啊...不是.module...

真是得来十分费功夫。

潜水久了,积累也很多,希望能多多反馈给社群。


To be a life-saver:

If the drupal hook you've just written is not working, not being fired & triggerred, not functioning, not xx..... the mainly reason would be:

1. Cache.

2. The module you are editing is not enabled.

3. The coding is not placed in the .module file !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值