むしろ次のコードを使用したいと思います。
function helloworld_init() {
drupal_add_css(drupal_get_path('module', 'helloworld') . '/helloworld.css', array('group' => CSS_DEFAULT, 'every_page' => TRUE));
}
function helloworld_menu(){
$items = array();
$items['helloworld'] = array(
'title' => t('Hello world'),
'page callback' => 'helloworld_output',
'access arguments' => array('access content'),
);
return $items;
}
/*
* Display output
*/
function helloworld_output() {
drupal_add_http_header('Content-type', 'text/plain; charset=UTF-8');
drupal_add_http_header('Content-Disposition', 'inline');
return array(
'#prefix' => '<div id="hw_wrapper">',
'#suffix' => '</div>',
'#theme' => 'helloworld_mypage',
);
}
function helloworld_theme() {
return array(
'helloworld_mypage' => array(
'variables' => array(),
'template' => 'helloworld-mypage',
),
);
}
helloworld.display.php ファイルの名前を helloworld-mypage.tpl.php に変更し、helloworld.module ファイルを含むディレクトリに配置します。
いくつかのメモを追加します。
hook_init()は、CSS ファイルを任意のページに含める必要がある場合に使用されます。ページでのみ使用する必要がある場合は、次のコードを使用できます。(前に示した I を次のコードに置き換えhelloworld_output()
ます。残りは前と同じです。)
function helloworld_output() {
drupal_add_http_header('Content-type', 'text/plain; charset=UTF-8');
drupal_add_http_header('Content-Disposition', 'inline');
return array(
'#prefix' => '<div id="hw_wrapper">',
'#suffix' => '</div>',
'#theme' => 'helloworld_mypage',
'#attached' => array(
'css' => drupal_get_path('module', 'helloworld') . '/helloworld.css',
),
);
}
への単一の呼び出しがある場合drupal_add_http_header()
は、次のコードのように、#attached 配列内の項目に置き換えることができます。
function helloworld_output() {
return array(
'#prefix' => '<div id="hw_wrapper">',
'#suffix' => '</div>',
'#theme' => 'helloworld_mypage',
'#attached' => array(
'css' => drupal_get_path('module', 'helloworld') . '/helloworld.css',
'drupal_add_http_header' => array('Content-type', 'text/plain; charset=UTF-8'),
),
);
}
詳細については、 drupal_process_attached()を参照してください。