Membuat banyak blok secara terprogram

9

Saya menulis modul khusus untuk Drupal 7. Saya perlu membuat 5 blok berbeda dengan modul. Drupal memiliki hook_block_infodan hook_block_viewkait yang membuat blok. Bagaimana saya bisa menambahkan beberapa blok karena kait ini hanya memperbolehkan satu blok per modul?

eyurdakul
sumber

Jawaban:

19

Kode berikut akan membantu. Anda jelas perlu menambahkan 5 blok sesuai kebutuhan, tetapi itu hanya untuk menunjukkan bagaimana Anda dapat menambahkan beberapa blok dalam satu modul:

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

Alasan status => 1dari hook_block_info()dokumen API:

status: (opsional) Nilai awal untuk status blok yang diaktifkan. (1 = diaktifkan, 0 = dinonaktifkan). Sebagian besar modul tidak memberikan nilai awal, dan nilai apa pun yang diberikan dapat dimodifikasi oleh pengguna pada layar konfigurasi blok.

Saya tidak yakin dari mana Anda mendapat satu blok per ide modul dari. Anda dapat membuat sebanyak mungkin blok dalam modul.

Chapabu
sumber