在我正在创建的主题中,我想要将块放在与默认位置不同的位置。例如,将搜索块放在标题中。
有没有办法从主题中做到这一点:能够需要一个块并将其放置在某个地方吗?
答案 0 :(得分:1)
Drupal的主题系统足够灵活,可以将页面的这一部分准确地转换为您希望块出现的区域。为此,您需要按Assigning contents to regions所述的方式将区域添加到主题的.info
文件中,例如regions[foobar] = Foobar
。这会为您的page.tpl.php提供新变量$page['foobar']
。然后,您可以使用与Drupal的内置区域相同的方式为区域分配内容。
如果您想绕过这个系统并临时显示一个块,请查看_block_render_blocks如何呈现块。
答案 1 :(得分:0)
它违背了可配置块的想法,但仍然可能:您必须为除允许区域之外的所有区域创建空块模板。或者您为此块提供/覆盖主题功能,并且不为禁止区域返回任何内容。
答案 2 :(得分:0)
在D7中,您可以在主题.info文件中添加占位符区域,清除缓存并将块放在那里,然后输出区域的内容。
print render(block_get_blocks_by_region('region_name'));