Programowe tworzenie wielu bloków

9

Piszę niestandardowy moduł dla Drupala 7. Muszę utworzyć 5 różnych bloków za pomocą tego modułu. Drupal ma haczyki hook_block_infoi, hook_block_viewktóre tworzą bloki. Jak mogę dodać wiele bloków, ponieważ te zaczepy pozwalają tylko na jeden blok na moduł?

eyurdakul
źródło

Odpowiedzi:

19

Poniższy kod powinien pomóc. Oczywiście będziesz musiał dodać odpowiednio 5 bloków, ale tylko po to, aby pokazać, jak możesz dodać wiele bloków w jednym module:

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

Powód status => 1z hook_block_info()dokumentów API:

status: (opcjonalnie) Wartość początkowa dla statusu włączenia bloku. (1 = włączony, 0 = wyłączony). Większość modułów nie podaje wartości początkowej, a każda podana wartość może zostać zmodyfikowana przez użytkownika na ekranie konfiguracji bloku.

Nie jestem pewien, skąd wziął się pomysł na jeden blok na moduł. Możesz utworzyć tyle bloków, ile chcesz w module.

Chapabu
źródło