在安装模块期间,我需要为区域分配视图,并从该区域取消分配块。这需要在UI中花费3秒钟,但这必须以编程方式完成。
该视图称为“合法页脚”,需要将其分配给区域“页脚”。 同样,我有一个名为“footer-logos”的块,它当前位于“页脚”区域,但需要删除。
我想我想要hook_block_info_alter,但我不确定它是否适用于View,并且API文档中有一条注释,它不能用于取消分配块...
我是Drupal的新手,我可以很容易地在UI中找到我想要的任何东西,但是我很难使用API。
答案 0 :(得分:1)
将块分配给区域使用数组中的'region'键返回的信息包含应该将该块分配给的区域的名称
<强> E.g 强>
function module_block_info() {
$blocks = array();
$blocks[0] = array(
'info' => t('Block Title'),
'region' => 'name-of-the-region', // here is the name of the region
'status' => 1, // 1 if you want the block to be enabled by default
);
return $blocks;
}
您可以使用此类查询来禁用存在块
db_update('block')->fields(array('region' => '', 'status' => 0))->condition('bid', $block_id)->execute();
将$ block_id替换为您要禁用的块的ID
<强>更新强>
您可以使用hook_block_info_alter
来禁用存在块
function hook_block_info_alter(&$blocks, $theme, $code_blocks) {
// Disable the login block.
$blocks['defining_module']['delta']['status'] = 0;
}
祝你好运