喜 我正在尝试创建一个新的drupal主题,它有许多不同的页面和许多不同的样式页面和许多css文件。 该模板适用于具有特定模块的特定网站,并且每个模块都有自己的模板 我正在zen下开发我的主题。 在模板.info我定义了manay css文件,我的问题是: 我想在特定模块下的每个.CSS文件的DRUPAL负载 drupal只为其他浏览器[如IE6 IE7,...]提供了条件样式表,但在特定模块中没有任何加载
答案 0 :(得分:1)
您可以在主题的template.php文件中编写自己的规则。 我经常使用这个技巧不是针对不同的模块,而是针对不同的路径。
if ($vars['is_front']) {
$vars['template_files'] = array();
if (file_exists(path_to_theme().'/page-front.tpl.php')){
$vars['template_files'][] = 'page-front';
}
if (file_exists(path_to_theme().'/style-front-ie6.css')) {
$vars['ie6_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-front-ie6.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-front-ie7.css')) {
$vars['ie7_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-front-ie7.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-front-ie8.css')) {
$vars['ie8_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-front-ie8.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-front.css')) {
drupal_add_css(path_to_theme().'/style-front.css', 'theme', 'all', FALSE);
}
} else {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename .= '-'.$path_part;
$vars['template_files'][] = $template_filename;
if (file_exists(path_to_theme().'/style-'.$path_part.'-ie6.css')) {
$vars['ie6_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-'.$path_part.'-ie6.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-'.$path_part.'-ie7.css')) {
$vars['ie7_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-'.$path_part.'-ie7.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-'.$path_part.'-ie8.css')) {
$vars['ie8_style'] .= "\n".'<link type="text/css" href="/'.path_to_theme().'/style-'.$path_part.'-ie8.css" rel="stylesheet" />';
}
if (file_exists(path_to_theme().'/style-'.$path_part.'.css')) {
drupal_add_css(path_to_theme().'/style-'.$path_part.'.css', 'theme', 'all', FALSE);
}
}
}
}
}
$css = drupal_add_css();
$vars['css'] = $css;
$vars['styles'] = drupal_get_css($css);
将它放入phptemplate_preprocess_page函数中的template.php中,现在如果你有一个地址为http://example.com/catalog的页面,你可以使用page-catalog.tpl.php和style-catalog.css。