drupal条件样式表问题!

时间:2010-10-16 12:47:42

标签: css drupal-6 themes

喜 我正在尝试创建一个新的drupal主题,它有许多不同的页面和许多不同的样式页面和许多css文件。 该模板适用于具有特定模块的特定网站,并且每个模块都有自己的模板 我正在zen下开发我的主题。 在模板.info我定义了manay css文件,我的问题是: 我想在特定模块下的每个.CSS文件的DRUPAL负载 drupal只为其他浏览器[如IE6 IE7,...]提供了条件样式表,但在特定模块中没有任何加载

1 个答案:

答案 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。