我正在使用Drupal 7并创建了一个名为fb
的自定义模块。在fb.module
文件中,我有以下内容:
function fb_theme($existing, $type, $theme, $path) {
return array(
'fb' => array(
'template' => 'fb'
)
);
}
在与模块文件(模块的根目录)相同的目录中,我有一个名为fb.tpl.php
的文件,其中包含:
fb.tpl.php is working!
出于测试目的,我的主题html.tpl.php
文件在正文中调用以下内容:
<?php
$ouput = theme('fb');
print_r($output);
?>
但是,print_r($output)
行不会产生任何结果。我希望它包含fb.tpl.php
文件的内容,或者可能包含该文件内容的数组作为其参数之一的值。为什么不呢?
答案 0 :(得分:1)
你不需要在Drupal 7中使用主题函数。相反,创建一个这样的可渲染数组:
$output = array(
'#theme' => 'fb'
);
输出如下:
drupal_render($output);
这将是在html.tpl.php文件中输出它的最简单方法。
答案 1 :(得分:-1)
您正在使用drupal 6语法。 D7语法如下:
function fb_theme($existing, $type, $theme, $path) {
return array(
'fb' => array(
'file' => 'fb'
)
);
}
请参阅此处的完整文档:http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_theme/7
[edit] - 也不要忘记在更改主题挂钩后刷新主题缓存,否则你不会看到更改。