1

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

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

4

3 回答 3

1

Drupal 的主题系统足够灵活,可以将页面的那部分准确地转换为您希望块出现的区域。为此,您需要将区域添加到主题.info文件中,如将内容分配给区域中所述,例如regions[foobar] = Foobar. 这将为$page['foobar']您的page.tpl.php提供一个新变量。然后,您可以像使用 Drupal 的内置区域一样将内容分配给区域。

如果您想绕过此系统并临时显示块,请查看_block_render_blocks如何渲染块。

于 2011-01-16T15:49:10.730 回答
0

在 D7 中,您可以在主题 .info 文件中添加一个占位符区域,清除缓存并将您的块放在那里,然后您可以输出该区域的内容。

print render(block_get_blocks_by_region('region_name'));
于 2011-12-01T11:04:45.917 回答
0

它破坏了可配置块的想法,但它仍然是可能的:您必须为除允许区域之外的所有区域创建空块模板。或者您为此块提供/覆盖主题功能,并且对禁止区域不返回任何内容。

于 2011-01-16T15:37:56.677 回答