我有一个模块foo
,我已经实施了foo_page_build
。我想使用此函数将一些内容添加到page_top
区域。我很难有以下几点:
function foo_page_build(&$page) {
$page['page_top']['foo'] = array(
'#markup' => 'Hello, World!',
);
}
这有效但现在我想加载.tpl.php
并将其用作要呈现的内容。我如何在Drupal 7中做到这一点?另外,如果这是一个错误的钩子来实现我应该使用什么呢?
答案 0 :(得分:0)
hook_page_build很不错。
但也许在你的情况下,使用Block API更容易为你的模块定义一个自定义块,它将打印你想要的区域。然后,您将能够管理哪些用户在哪个区域中的页面......
之后,要加载自定义php模板,您必须:
1 /使用hook_theme()
为您的模块定义主题/**
* Implements hook_theme().
*/
function foo_theme($existing, $type, $theme, $path) {
return array(
'foo_block' => array(
'template' => 'templates/block-foo',
'variables' => array(
'options' => NULL,
),
),
);
}
2 /调用theme()函数(在Drupal API中查找)并使用它在page_top元素的'#markup'属性中返回的内容。
'#markup' => theme('foo_block', array('options' => $options));
.tpl.php文件将放在foo模块的子文件夹'templates'中:/foo/templates/block-foo.tpl.php 并且您将能够在主题文件夹中覆盖它。