プログラムで静的ブロックを作成するにはどうすればよいですか?


8

モジュールを使用して静的ブロックを作成したい。Viewsモジュールを使用してブロックを作成したくありません。プログラムで静的ブロックを作成する方法を誰かに説明してもらえますか?

Drupalでサンプルモジュールを確認しましたが、あまり役に立ちませんでした。私は最近Drupalモジュールの開発を始めており、これを行うのに苦労しています。

回答:


21

ブロック例モジュール内の重要なフックがあるhook_block_info()hook_block_view()。infoフックはシステム内のブロックを定義し、viewフックはブロックの出力(html)を作成します。

あなたを含むすべてのモジュールには、少なくとも.infoファイルと.moduleファイルがあります。Drupal.orgには、モジュールを使い始めるときに役立つ.infoファイルに関するドキュメントがいくつかあります。あなたのものは本当にnamecoreエントリが必要なだけです。

.moduleファイルは、フックを実装する場所です。まず、を実装hook_block_info()し、関数名の「フック」をモジュールの名前に置き換えますmy_module_block_info()。次のようになります。

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

  return $blocks;
}

次に、hook_block_view()フックを実装して静的コンテンツを定義します。

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

それを配置したら、Drupalの他のブロックと同じように、ブロックを任意のリージョンに配置できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.