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?

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.