我对主题很新,我只是继承了这段代码。我需要控制打印#output的位置和方式,但它始终显示在页面顶部,HTML标记上方。我查看了可渲染数组API,但我找不到任何特定于我的问题的内容。
在mytheme.module中:
function mytheme_output_block() {
$content = array(
'#theme' => 'my_theme',
'#output' => function_that_returns_JSON();
...
function mytheme_hook_theme() {
return array(
'my_theme' => array(
'vars' => array(
'output' => '',
...
在my_theme.tpl.php中,我试过了:
<?php print $output; ?>
但它被忽略了。如何控制#output以便我可以设置样式?
答案 0 :(得分:0)
不是很确定,但您可能需要直接调用数组元素。类似的东西:
$theme = mytheme_hook_theme();
echo $theme['output'];
希望有所帮助
答案 1 :(得分:0)
查看hook_theme的文档:https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_theme/7.x
vars
- 它variables
template
密钥
模板:如果指定,此主题实现是一个模板,这是没有扩展名的模板文件。不要把.tpl.php放在这个文件上;该扩展将由默认呈现引擎(即PHPTemplate)自动添加。如果指定了上面的路径&#39;,则模板也应该在此路径中。
那么你的钩子应该是什么样的:
function mytheme_hook_theme() {
return array(
'my_theme' => array(
'variables' => array(
'output' => '',
),
'template' => 'my-theme',
...
请记得事后清除缓存。