在Drupal 6中将Logic添加到"Promoted to front page"功能

ans*_*ung 2 drupal drupal-6

我试图在Drupal 6中的'Promoted to front page'功能中添加一些额外的逻辑.也就是说,默认情况下,我想添加额外的标准,节点必须满足才能出现在家中页.

具体来说,我不希望主页上出现的过去事件(由CCK日期字段确定)即使它们被提升.

有没有办法可以替换所产生的内容node_page_default()?SQL没有动态生成,所以我想输出需要完全替换.

(我意识到所有这些都可以通过Views或者hook_cron完成,但我宁愿不要将这些方法用于相对较小的怪癖.)

提前致谢!

Hen*_*pel 5

作为对查询的node_page_default()调用db_rewrite_sql(),您可以尝试hook_db_rewrite_sql()在自定义模块中实现以添加其他限制.我不建议这样做,因为你需要以某种方式识别钩子实现中的原始查询,这将是脆弱的 - 其他模块也可能会重写它,并且它可能随时更新更改,从而破坏您的更改.

或者,您可以node_page_default()通过将其复制到自定义模块来创建自己的版本,根据需要进行修改(不要忘记重命名),然后实现hook_menu_alter()将原始页面回调交换到node_page_default"节点"路径上与您的自定义版本.(您也可以使用自定义回调来注册自己的首页路径,hook_menu()并调整您的首页设置以指向该页面.)

但是,如果您已经在站点中使用了视图模块,我建议保存所有这些工作,只需为首页视图启用提供的覆盖,相应地调整其过滤器设置.