以编程方式将视图分配给Drupal 7中的区域
问题描述:
在模块安装期间,我需要将视图分配给区域,并从该区域取消分配块。这是在UI中需要3秒钟的事情,但这必须以编程方式完成。以编程方式将视图分配给Drupal 7中的区域
该视图被称为'合法页脚',它需要分配给该区域'页脚'。 同样,我有一个名为'footer-logos'的区块,目前在'footer'区域,但需要删除。
我想我要hook_block_info_alter,但我不知道,如果它的工作原理上查看,而且也因为它不能被用来取消分配块的API文档的说明...
我对于Drupal来说是新的,我可以很轻松地在UI中实现我想要的任何功能,但是我对API的使用很困难。在阵列中
答
,以块分配给一个区域利用“区域”键返回包含此块应分配给
如
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();
用要禁用的块的ID替换$ block_id
UPDATE: 可以使用hook_block_info_alter
禁用存在块
function hook_block_info_alter(&$blocks, $theme, $code_blocks) {
// Disable the login block.
$blocks['defining_module']['delta']['status'] = 0;
}
好运