Wie erstelle ich programmatisch einen statischen Block?

8

Ich möchte einen statischen Block mit einem Modul erstellen. Ich möchte das Views-Modul nicht zum Erstellen eines Blocks verwenden. Kann mir jemand erklären, wie man einen statischen Block programmgesteuert erstellt?

Ich habe die Beispielmodule in Drupal bereits überprüft, aber es hat mir nicht viel geholfen. Ich habe vor kurzem mit der Entwicklung von Drupal-Modulen begonnen und habe Schwierigkeiten, dies zu tun.

kiamlaluno
quelle

Antworten:

21

Die wichtigen Hooks im Block-Beispielmodul sind hook_block_info()und hook_block_view(). Der Info-Hook definiert Ihren Block im System und der View-Hook erstellt die Ausgabe (HTML) für Ihren Block.

Jedes Modul, einschließlich Ihres, verfügt über mindestens eine .info-Datei und eine .module-Datei. Drupal.org enthält weitere Dokumentationen zu .info-Dateien , die Sie möglicherweise hilfreich finden, wenn Sie mit Modulen beginnen. Ihre braucht wirklich nur die nameund coreEinträge.

In der .module-Datei implementieren Sie Ihre Hooks. Implementieren Sie zunächst hook_block_info()und ersetzen Sie 'hook' im Funktionsnamen durch den Namen Ihres Moduls, z my_module_block_info(). Es sollte ungefähr so ​​aussehen.

function my_module_block_info() {    
  $blocks['your_block'] = array(
    // info: The name of the block.
    'info' => t('Your Block Name'),
  );

  return $blocks;
}

Implementieren Sie dann Ihren hook_block_view()Hook, um den statischen Inhalt zu definieren.

function my_module_block_view($delta = '') {
  // The $delta parameter tells us which block is being requested.
  switch ($delta) {
    case 'your_block':
      // Create your block content here
      $block['subject'] = t('Title of first block (example_configurable_text)');
      $block['content'] = 'Your block content, or the result of a function that returns the content';
      break;
  }

  return $block;
}

Sobald Sie dies eingerichtet haben, können Sie Ihren Block wie jeden anderen Block in Drupal in einer beliebigen Region platzieren.

Chaulky
quelle