瞎忙半天的drupal hook

来源:互联网 发布:优化最好的单机游戏 编辑:程序博客网 时间:2024/05/02 09:53

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

今天要修复一个问题:表用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 !

原创粉丝点击