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