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