如何附加到Drupal模块页面回调

时间:2010-08-17 13:55:46

标签: drupal hook-menu

假设您使用hook_menu()从模块#1进行页面回调。您想要创建模块#2,它基本上只是在模块#1页面回调的底部附加一些东西(想想你想要添加到页面底部的一些注释)。你怎么能这样做的?我的理解是你可以使用hook_menu_alter来完全覆盖页面回调,但是如果你只想追加它呢?

2 个答案:

答案 0 :(得分:3)

你无法按照自己的要求行事,但在某种程度上你仍然可以做到。

假设原始页面回调为foo

您可以使用hook_menu_alter将其更改为bar

然后你可以做这样的事情。

function bar() {
  $output = foo();
  $output .= 'extra';
  return $output;
}

这不是一个漂亮的解决方案,但它确实有效。

替代解决方案是使用块和区域,这毕竟是它的意思。在某些情况下会产生一些额外的工作,如果你需要访问上下文和块管理页面,如果你需要为每个页面提供大量的块,那么会变得有点混乱。

在某些情况下,您可以通过覆盖主题函数,模板或使用预处理挂钩来修复您的需求。

答案 1 :(得分:1)

也许考虑实现一个默认启用的页脚区域块?或者使用hook_footer()