drupal 6 -----为什么theme()无法输出

时间:2010-11-27 06:31:58

标签: drupal-6 module themes

我放入mytheme template.php的代码

  function mytheme_theme(){
     return array(
       'mytheme_example' => 'example',
         'argument' => array('myvar' => null),
      );
     }

我放入node.tpl.php的代码

 <?php
$html = "";
$myvar = "hello,world";
 $html .= theme('mytheme_example', myvar);

  return $html;
 ?>

我放入example.tpl.php的代码

   <div>
   here is the <b><?php print myvar; ?></b>being created.
  </div>

我已经清除了缓存,但是在节点文章的页面上,没有关于hello world的任何输出。

ps:我可以使用hook_theme,template.php,模块文件的文件。有没有我可以使用这个钩子的文件?

2 个答案:

答案 0 :(得分:0)

看起来你已经在template.php中正确声明了你的hook_theme,所以我认为这不是问题。

我确实发现了你的node.tpl.php的语法问题,如果不是:

<?php
    $vars = array('myvar' => 'hello, world');
    $html = theme('mytheme_example', $vars);
    return $html;
?>

请注意,关联数组与'myvar'(在hook_theme中声明的变量)将作为键传入。

另一点,标准模板文件与钩子名称相同是标准做法,所以我建议调用模板mytheme-example.tpl.php。

有关详细信息,请参阅drupal.org

答案 1 :(得分:0)

我不知道你是否已经解决了这个问题。

我会尝试以这种方式宣布我的主题:

function mytheme_theme(){
     return array(
       'mytheme_example' => array(
         'arguments' => array('arguments'=>array()),
         'template' => 'example',
       ),
     }

这就是我通常做的事情,它对我有用。