在#prefix中使用HTML标记时,它们应该用#suffix关闭。 您是否记得关闭#prefix中的内容?
像这样:
$data = array(
'#type' => 'markup',
'#prefix' => '<div>',
'#markup' => theme('table', array('header' => $header, 'rows' => $rows)),
'#suffix' => '</div>',
);
编辑
为了控制输出为HTML而不是呈现阵列的一个可以使用hook_block_view()钩喂$块[ '内容']用纯HTML而不是渲染数组。 According to the documentation $ block ['content']可以处理这两种类型的输入。
function modulename_block_view($delta='') {
$block = array();
switch($delta) {
case 'block_name' :
$block['content'] = '<div>Content before</div>';
$block['content'] .= theme('table', array('header' => $header, 'rows' => $rows));
$block['content'] .= '<div>Content after</div>';
break;
}
return $block;
}
如果你不想使用块视图钩我想你可以渲染渲染阵列,以这种方式来代替:
$render_array = array(
'#type' => 'markup',
'#markup' => theme('table', array('header' => $header, 'rows' => $rows)),
);
$before = '<div>Content before</div>';
$after = '<div>Content after</div>';
$data = $before.render($render_array).$after;
return $data;
的参考见render()。 还请记住清除您的缓存,如this answer中所述。
这并不能真正回答我的问题。我明白你在说什么,但我试图用前缀来达到不同的目的;目的是我需要帮助:添加更多的HTML到块,除了主题呈现表。尽管如此,我很欣赏这一努力。 我想要做的是,例如在块的表格之前或之后添加一些文本。 – UnsettlingTrend 2013-02-14 18:53:04
啊,我明白了。 - 我编辑了我的答案,试图反映你的细化。 – Larpon 2013-02-26 14:43:32