我加载了一个块主题和内容,module_invoke()
并用于render()
渲染它们。我想为此块使用上下文链接。我如何也可以渲染它们?
这是我正在insde页面中使用的代码-front.tpl.php模板。
$block = module_invoke('block', 'block_view', '4);
print render($block);
我应该改用什么代码?
我加载了一个块主题和内容,module_invoke()
并用于render()
渲染它们。我想为此块使用上下文链接。我如何也可以渲染它们?
这是我正在insde页面中使用的代码-front.tpl.php模板。
$block = module_invoke('block', 'block_view', '4);
print render($block);
我应该改用什么代码?
Answers:
Bart的回答将给出严格标准警告(PHP 5.4中默认启用)。要解决此问题,只需对可渲染数组使用一个中间变量:
$block = block_load('module', 'delta');
$renderable_array = _block_get_renderable_array(_block_render_blocks(array($block)));
print drupal_render($renderable_array);
出现警告的原因是因为该drupal_render
函数期望其参数作为参考。它具有签名drupal_render(&$elements)
。有关更多信息,请参见此类似问题的答案。
上下文链接很有帮助,并且非常容易实现。对于您的用例,您需要实现hook_block_view_alter()
更改#contextual_links项目以适合您的需求。这些参考将帮助您:
GL :)