1

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

4

2 回答 2

3

你不能按照你的要求去做,但在某种程度上你仍然可以做到。

说原始页面回调是foo

bar使用 hook_menu_alter 将其更改为。

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

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

这不是一个很好的解决方案,但它有效。

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

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

于 2010-08-17T14:42:19.133 回答
1

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

于 2010-08-17T15:19:38.830 回答