0

ヘッダー、フッター、およびコンテンツ領域を持つ page.tpl.php があります。モジュールから hook_menu に別のコンテンツ ベースをロードする必要があります。

モジュールで次のテスト コードを使用して、テンプレートから何かを印刷しようとしています。

function my_module_theme() {
  return array(
    'tutorials_test' => array(
    'template' => 'tutorial'
    )
 );
}

モジュールフォルダーにテンプレートtutorial.tpl.phpがあります

以下は私の hook_menu とコールバック関数です

function my_module_menu() {
      $items['insights/tutorials'] = array(
         'title' => 'Tutorials',
         'access callback' => TRUE,
        'page callback' => 'insights_tutorials'
  );
}

コールバック関数

  function insights_tutorials() {
   echo 'test';
   print theme('tutorials_test');
   echo 'after test';
  }

そのページに目を向けると、「テスト」と「テスト後」というテキストが表示されますが、テンプレートからは何も印刷されません。

tutorial.tpl.php には次の簡単なコードがあります。

<h1>Hello World</h1>
4

1 に答える 1

1

hook_theme 実装 ( function ) 内で、キーmy_module_themeを渡す必要がありますvariables

function my_module_theme() {
  return array(
    'tutorials_test' => array(
        'template' => 'tutorial',
        'variables' => array( // the variables key
            'title' => NULL,
            'details' => NULL,
        ),
    )
 );
}

次に、次のように HTML を出力します。

print theme('tutorials_test', array(
    'title' => 'This is the title',
    'details' => 'And this is details',
));

hook_theme() の実装方法に関する苦い例については、この回答をご覧ください。

これがうまくいくことを願っています...ムハンマド。

于 2012-11-17T04:33:09.497 に答える