Drupal 6 drupal 6----为什么主题()可以';t输出

Drupal 6 drupal 6----为什么主题()可以';t输出,drupal-6,module,themes,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

我放在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>

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


ps:哪些文件我可以使用hook_主题,template.php,模块文件。有任何文件可以使用这个钩子吗?

看起来您已经在template.php中正确声明了钩子主题,所以我认为这不是问题所在

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

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

注意,关联数组和“myvar”(hook_主题中声明的变量)作为键传入

另一点,标准做法是将模板文件命名为与钩子名称相同的名称,因此我建议调用模板mytheme-example.tpl.php


有关更多信息,请参见。我不知道您是否已经解决了该问题

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

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

这是我通常的做法,它在我身上运行良好。

我已更改了您指出的错误。但仍然无法输出$myvar的值。我已更新解决方案以反映关联数组,因为我相信这是一个问题。我已尝试了您的代码,但仍然没有任何输出。您可以在本地环境中测试我的代码吗。非常感谢。