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 实现(函数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 回答