2012-03-15 7 views
0

モジュールのインストール中に、ViewにRegionを割り当て、その領域からBlockを割り当て解除する必要があります。これは、UIで3秒かかるだろうが、これはプログラムで行う必要があります。Drupalで領域にプログラムを割り当てる7

ビューは「法的フッタ」と呼ばれ、「フッタ」領域に割り当てる必要があります。 同様に、私は 'footer-region'にある 'footer-logos'というブロックを持っていますが、削除する必要があります。

は私がhook_block_info_alterをしたいと思うが、それはビュー上で動作し、ブロックの割り当てを解除するために使用することはできませんAPIのドキュメントでノートがあります場合、私は...

Iわからないんだけど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; 
} 

、あなた例:

に割り当てすべき領域の名前が含まれている配列が返さ情報で「領域」キー領域の使用にブロックを割り当てる

答えて

1

このようなクエリを使用して存在ブロックを無効にすることができます。

db_update('block')->fields(array('region' => '', 'status' => 0))->condition('bid', $block_id)->execute(); 

無効にするブロックのIDを0に置き換えます。

UPDATE: 無効にhook_block_info_alterを使用することができますが存在するブロック

function hook_block_info_alter(&$blocks, $theme, $code_blocks) { 
    // Disable the login block. 
    $blocks['defining_module']['delta']['status'] = 0; 
} 

幸運

関連する問題