0

我正在使用 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,或者可能包含该文件的内容作为其参数之一的值的数组。为什么不呢?

4

2 回答 2

1

你根本不需要在 Drupal 7 中使用主题函数。相反,创建一个像这样的可渲染数组:

$output = array(
  '#theme' => 'fb'
);

并像这样输出:

drupal_render($output);

这将是在 html.tpl.php 文件中输出它的最简单方法。

于 2012-02-13T00:24:47.873 回答
-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

[编辑] - 更改主题挂钩后也不要忘记刷新主题缓存,否则您将看不到更改。

于 2012-02-13T04:14:28.220 回答