打印主题()在drupal 7中不起作用

时间:2012-11-17 04:12:16

标签: drupal drupal-7 drupal-modules drupal-theming drupal-themes

我有一个page.tpl.php,其中包含页眉,页脚和内容区域。我需要从模块中加载hook_menu上的不同内容。

我在模块中使用以下测试代码尝试从我的模板中打印一些内容:

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

我在modules文件夹

中有一个模板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>

1 个答案:

答案 0 :(得分: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()的一个痛苦示例,请查看this answer

希望这有效......穆罕默德。