web-dev-qa-db-ja.com

テンプレートファイルに(タイトル付きの)ブロックを埋め込む方法は?

私はいくつかのブロックを作成し(「ブロックの追加」オプションを介して他のモジュールに関連していません)、ホームページテンプレートの正しい場所でそれらを呼び出そうとしています。

私は次のコードを見つけました:

$block = module_invoke('block', 'block', 'view', '1'); //where 1 is block delta
print $block['content'];

しかし、これではブロックのコンテンツを表示することしかできません。ブロックのタイトルも取得する方法はありますか? $ block ['title']または$ block ['subject']を使用している人を見つけましたが、私の$ block配列にはコンテンツしか含まれていないようです。

これはよくある質問ですが、私の人生に対する答えを見つけることができなかったようです。

4
Shellbot

http://drupal.org/node/26502 -コードを使用してブロックを表示する方法を説明します。下部に、ブロック全体(件名を含む)を表示する例がいくつかあります。

特に、Drupalのtheme()関数を使用して試すことができます。

<?php
    $block = (object) module_invoke('[target_module]', 'block', 'view', "[target_block_ID]");
    print theme('block', $block);
?>
3
Chris Budy

上記はD6の回答ですが、提供されているリンクはD6およびD7のソリューションの詳細を示しています。

D7にこれを試してください。

$block = (object) module_invoke('[target_module]', 'block_view', "target_block_ID]");
print theme('block', $block);
1
chim