【发布时间】:2014-02-12 15:41:56
【问题描述】:
我在一个模块中有一个hook_init,它只需要在特定页面上执行。
目前,hook_init 在每次页面加载时都会执行。
问题:
-
hook_init是正确的方法吗? - 如果不是,使用我的自定义模块执行页面特定操作的正确选项是什么?
- 使用
hook_init,然后验证页面的URL。根据比赛,我可以执行我的条件吗?
【问题讨论】:
-
你想用这个钩子做什么? Hook init 对于在页面呈现之前定义变量和加载样式或脚本很有用。您可以使用 drupal_get_path_alias 按 url 过滤:api.drupal.org/api/drupal/includes%21path.inc/function/…
-
在我的例子中,我使用它来定义和初始化稍后在页面中使用的变量。所以我应该继续使用 hook_init 和 drupal_get_path_alias ?
-
是的,记住 hook_init 不在缓存页面中运行。
-
如果你的网站有缓存页面,你应该使用hook_boot,但我不推荐这个
-
刚刚快速阅读了 hook_boot。是的,如果我理解正确的话,这个页面有缓存版本和未缓存版本。但是我可以从 hook_boot 中调用 drupal_get_path_alias 吗?