Создание нескольких блоков программно

9

Я пишу пользовательский модуль для Drupal 7. Мне нужно создать 5 различных блоков с модулем. Drupal имеет свои hook_block_infoи hook_block_viewкрючки, которые создают блоки. Как я могу добавить несколько блоков, так как эти ловушки позволяют только один блок на модуль?

eyurdakul
источник

Ответы:

19

Следующий код должен помочь. Очевидно, вам нужно будет добавить 5 блоков соответствующим образом, но это просто для того, чтобы показать, как вы можете добавить несколько блоков в одном модуле:

function MYMODULE_block_info() {
 $blocks = array();
 $blocks['myfirstblock'] = array(
   'info' => t('My block admin info'),
   'status' => 1,
 );
 $blocks['mysecondblock'] = array(
   'info' => t('My second block admin info'),
   'status' => 1,
 );

 return $blocks;
}

function MYMODULE_block_view($delta = '') {
  $block = array();

  switch ($delta) {
    case 'myfirstblock':
      $block = array(
        'subject' => t('My first block title'),
        'content' => t('My first block content'),
      );
      break;
    case 'mysecondblock':
      $block = array(
        'subject' => t('My second block title'),
        'content' => t('My second block content'),
      );
      break;
  }

  return $block;
}

Причина status => 1из hook_block_info()API Docs:

status: (необязательно) Начальное значение для статуса блокировки блока. (1 = включено, 0 = отключено). Большинство модулей не предоставляют начальное значение, и любое предоставленное значение может быть изменено пользователем на экране конфигурации блока.

Я не уверен, откуда вы взяли один блок на идею модуля. Вы можете создать столько блоков, сколько захотите в модуле.

Chapabu
источник