Programmgesteuert mehrere Blöcke erstellen

9

Ich schreibe ein benutzerdefiniertes Modul für Drupal 7. Ich muss 5 verschiedene Blöcke mit dem Modul erstellen. Drupal hat die hook_block_infound hook_block_viewHaken, die Blöcke erstellen. Wie kann ich mehrere Blöcke hinzufügen, da diese Hooks nur einen Block pro Modul zulassen?

eyurdakul
quelle

Antworten:

19

Der folgende Code sollte helfen. Sie müssen natürlich Ihre 5 Blöcke entsprechend hinzufügen, aber es soll nur zeigen, wie Sie mehrere Blöcke in einem Modul hinzufügen können:

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

Grund für status => 1aus hook_block_info()API-Dokumenten:

Status: (optional) Anfangswert für den Status "Block aktiviert". (1 = aktiviert, 0 = deaktiviert). Die meisten Module bieten keinen Anfangswert, und jeder angegebene Wert kann von einem Benutzer auf dem Blockkonfigurationsbildschirm geändert werden.

Ich bin mir nicht sicher, woher Sie die Idee mit einem Block pro Modul haben. Sie können in einem Modul so viele Blöcke erstellen, wie Sie möchten.

Chapabu
quelle