我宁愿使用以下代码。
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文件所在的目录下。
我将添加一些注释:
当 CSS 文件需要包含在任何页面中时,使用hook_init() 。如果您只需要在您的页面中使用它,您可以使用以下代码。(用下面的代码替换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()。