0

私は Drupal 7 を使用しており、という名前のカスタム モジュールを作成しましたfbfb.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ファイルの内容、またはそのファイルの内容をそのパラメーターの 1 つの値として含む配列が含まれていることを期待しています。なぜそうしないのですか?

4

2 に答える 2

1

You don't need to use the theme function at all in Drupal 7. Instead, create a renderable array like this:

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

And output it like this:

drupal_render($output);

That would be the easiest way to output it in your html.tpl.php file.

于 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 に答える