我放入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,模块文件的文件。有没有我可以使用这个钩子的文件?
答案 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',
),
}
这就是我通常做的事情,它对我有用。