Створення декількох блоків програмно


9

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

Відповіді:


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:

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

Я не впевнений, звідки у вас ідея одного блоку на модуль. Ви можете створити стільки блоків, скільки хочете в модулі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.