在drupal主题中要求和放置块?

时间:2011-01-16 15:20:35

标签: php html drupal drupal-theming drupal-7

在我正在创建的主题中,我想要将块放在与默认位置不同的位置。例如,将搜索块放在标题中。

有没有办法从主题中做到这一点:能够需要一个块并将其放置在某个地方吗?

3 个答案:

答案 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'));