当使用带有#prefix 的HTML 标签时,它们应该用#suffix 结束。你记得关闭#prefix 中的内容吗?
像这样:
$data = array(
'#type' => 'markup',
'#prefix' => '<div>',
'#markup' => theme('table', array('header' => $header, 'rows' => $rows)),
'#suffix' => '</div>',
);
编辑
要将输出控制为 HTML 而不是渲染数组,可以使用 hook_block_view() 钩子为 $block['content'] 提供纯 HTML 而不是渲染数组。
根据文档, $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()以获取参考。还记得清除您的缓存,如本答案中所述。