2016-07-27 4 views
0

私はモジュールfooを持っていて、foo_page_buildを実装しました。この機能を使用して、一部のコンテンツをpage_top地域の先頭に追加したいと考えています。一生懸命、私は以下の持っている:これは動作しますDrupal 7のhook_page_buildを使ってモジュールから.tpl.phpをレンダリングする

function foo_page_build(&$page) { 
    $page['page_top']['foo'] = array(
    '#markup' => 'Hello, World!', 
); 
} 

今は.tpl.phpをロードし、レンダリングするコンテンツとして、これを使用したいです。どのように私はDrupal 7でこれを行うでしょうか?また、これが間違ったフックであれば、私は代わりに何を使用すべきですか?

答えて

0

hook_page_buildは、ある位置(地域)に常にコンテンツ(動的コンテンツも含む)を実装したい場合に便利です。

あなたの場合には、Block APIを使用してモジュールのカスタムブロックを定義する方が簡単です。あなたが地域で必要なものを印刷します。あなたは、あなたがする必要がある、カスタムPHPのテンプレートをロードするために、後...

、魔女のユーザーのために、魔女の領域では、魔女ページで管理できるようになります:

1 /あなたのためのテーマを定義します。 hook_theme()

/** 
* Implements hook_theme(). 
*/ 
function foo_theme($existing, $type, $theme, $path) { 
    return array(
    'foo_block' => array(
     'template' => 'templates/block-foo', 
     'variables' => array(
     'options' => NULL, 
    ), 
    ), 
); 
} 

2 /テーマ()関数を呼び出します(DrupalのAPIでそれを探して)、それはあなたのpage_top要素の「#markup」属性に帰国されたものを使用を使用してモジュール。

'#markup' => theme('foo_block', array('options' => $options)); 

.tpl.phpファイルがサブフォルダに配置されます、あなたのfooモジュールの「テンプレート」:/foo/templates/block-foo.tpl.php そして、あなたはそれを上書きすることができますあなたのテーマフォルダにあります。

関連する問題