我使用Drupal 7的Commerce Kickstart Distribution。我希望将搜索栏分配给首页上的不同区域,而不是我主题中的所有其他网站。我使用了此处显示的方法:http://saw.tl/drupal/programmatically-manage-drupal-blocks.html
function mytheme_hook_block_info_alter(&$blocks, $theme, $code_blocks)
{
if(drupal_is_front_page()) {
$blocks['views]['-exp-display_products-page']['region'] = "branding";
}
}
这是我的template.php中的功能。我知道搜索栏是使用views模块创建的,而不是"默认块"。
搜索栏的“阻止”菜单中显示的名称为Exposed form: display_products-page
,我在本教程后选择的模块名称和机器名称http://drupalchamp.org/node/166
然而,它根本不起作用。我没有收到任何错误或警告,当我加载首页时,块只是保留在默认区域。
答案 0 :(得分:0)
您可以使用上下文模块根据某些条件将块添加到不同的区域:
https://www.drupal.org/project/context
非常强大且易于使用的模块,所以我建议它。
如果您喜欢使用表单代码,您可以抓取块的内容并直接从模板打印,具体取决于检测到的页面。类似的东西:
$block = module_invoke('views', 'block_view', 'block_machine_name');
print render($block);
当然你会有条件地执行它......