<?php
/**
* Helper function to allow easy CSS excludes + includes
*/
function _phptemplate_get_css($exclude = array(), $include = array()){
$css = drupal_add_css();
foreach ($css['all']['module'] as $k => $path) {
$file = substr($k, strrpos($k, '/') + 1);
if (in_array($file, $exclude)){
unset($css['all']['module'][$k]);
}
}
foreach ($include as $file){
$css['all']['theme'][path_to_theme() .'/'. $file] = true;
}
return drupal_get_css($css);
?>
詳しくはdrupal.orgをご覧ください。
更新:
この関数を配置する適切な場所はtemplate.php
、テーマのファイルです。実際、あなたの場合、除外したいcssファイル名の配列を渡す必要があります。引数を渡さずに を
呼び出すと、テーマに添付される CSS ファイルの配列が提供されます。ということで、今が入社のチャンス! drupal_add_css()
$css
ご覧のとおり、最初のforeach
ループでは、スタイルを削除するため$css
に、渡された配列に存在するファイル名の配列を検索するだけです。$exclude
そして、スタイル挿入の 2 番目のループで同じ作業を行います。そして最後に、関数を使用してテーマに添付する必要があるすべてのスタイルのテーマ表現を返しdrupal_get_css()
ます。(あなたの場合は何もないかもしれません)
さて、この関数をどこで呼び出すのでしょうか? このヘルパー関数は_phptemplate_variables()
、D5 またはYOUR_THEME_preprocess()
D6 に対して呼び出すことができます。D6 (未テスト)の動作でこれを見ると:
function YOUR_THEME_preprocess(&$vars, $hook){
// Stylesheet filenames to be excluded.
$css_exclude_list = array(
'lightbox.css',
'lightbox_lite.css',
);
// Making use of previously defined helper function.
$vars['styles'] = _phptemplate_get_css($css_exclude_list);
}
それらをすべて除外する方法を知っていると思います;)