投稿者: shirane 日付: 2009-01-07 (水) 03:37
Posted in
Drupal のモジュールから、HTML コンテンツ断片を (テーマに埋め込まずに) そのままクライアントに返す方法について。
Drupal のモジュールを書いて hook_menu() 関数をオーバーライドすることで、自作のハンドラ関数の出力を Drupal サイトの特定のパスに対応づけることができる。
function hoge_menu($may_cache) { $items = array(); if ($may_cache) { $items[] = array( 'path' => 'hogege-path', //パス 'title' => t('HOGEGE'), //メニュー項目 'callback' => 'hogege_handler', //ハンドラ関数 'access' => TRUE); } } return $items; } // ハンドラの実装 function hogege_handler() { // ほげげなコンテンツ生成 $output = '<div>HOGEGE</div>'; return $output; }
ハンドラ関数の戻り値はテーマに埋め込まれ、最終的なページとしてクライアントに返される。
コンテンツを返す代わりに print 文などでそのまま出力すると、その部分だけをクライアントに返すことができる。
function hogege_handler() { /* ほげげなコンテンツをそのまま出力 */ $output = '<div>HOGEGE</div>'; print($output); }