Programlı olarak birden fazla blok oluşturma


9

Drupal 7 için özel bir modül yazıyorum. Modül ile 5 farklı blok oluşturmam gerekiyor. Drupal sahiptir hook_block_infove hook_block_viewbloklar oluşturmak kancaları. Bu kancalar modül başına yalnızca bir bloğa izin verdiğinden nasıl birden fazla blok ekleyebilirim?

Yanıtlar:


19

Aşağıdaki kod yardımcı olacaktır. Açıkça 5 bloğunuzu uygun şekilde eklemeniz gerekecek, ancak sadece bir modülde nasıl birden fazla blok ekleyebileceğinizi göstermek için:

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

Nedeni status => 1gelen hook_block_info()API docs:

status: (isteğe bağlı) Blok etkin durum için başlangıç ​​değeri. (1 = etkin, 0 = devre dışı). Çoğu modül bir başlangıç ​​değeri sağlamaz ve sağlanan herhangi bir değer, blok yapılandırma ekranındaki bir kullanıcı tarafından değiştirilebilir.

Modül fikri başına tek blok nereden geldiğinden emin değilim. Bir modülde istediğiniz kadar blok oluşturabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.