Программно назначить вид для региона в Drupal 7 - PullRequest
0 голосов
/ 16 марта 2012

Во время установки модуля мне нужно назначить вид на регион и отменить назначение блока из этого региона.Это что-то, что займет 3 секунды в пользовательском интерфейсе, но это должно быть сделано программно.

Представление называется 'legal-footer', и его нужно назначить региону 'footer'.Точно так же у меня есть блок с именем 'footer-logos', который в данный момент находится в области 'footer', но его нужно удалить.

Я думаю, что хочу hook_block_info_alter, но я не уверен, работает ли он в Viewи в документации API есть примечание, что его нельзя использовать для отмены назначения блока ...

Я новичок в Drupal, и я могу довольно легко делать все, что захочу в пользовательском интерфейсе, но яУ меня проблемы с API.

1 Ответ

1 голос
/ 16 марта 2012

, чтобы назначить блок региону, используйте ключ 'region' в массиве, возвращающем информацию, которая содержит название региона, которому этот блок должен быть присвоен

Например,

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 на идентификатор блока, который вы хотите отключить

ОБНОВЛЕНИЕ: вы можете использовать hook_block_info_alter для отключения существующего блока

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

удачи

...