プログラムによる複数のブロックの作成


9

Drupal 7のカスタムモジュールを作成しています。モジュールを使用して5つの異なるブロックを作成する必要があります。Drupalには、ブロックを作成するhook_block_infoおよびhook_block_viewフックがあります。これらのフックはモジュールごとに1つのブロックしか許可しないので、どうすれば複数のブロックを追加できますか?

回答:


19

次のコードが役立ちます。必要に応じて5つのブロックを追加する必要があることは明らかですが、1つのモジュールに複数のブロックを追加する方法を示すためだけです。

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;
}

APIドキュメントstatus => 1からの理由hook_block_info()

status:(オプション)ブロック有効ステータスの初期値。(1 =有効、0 =無効)。ほとんどのモジュールは初期値を提供せず、提供された値はユーザーがブロック構成画面で変更できます。

モジュールごとに1つのブロックのアイデアをどこから得たのかわかりません。モジュールには、好きなだけブロックを作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.