以编程方式将视图分配给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; 
} 

好运