drupal条件样式表问题!

发布于 2024-09-27 21:51:03 字数 230 浏览 1 评论 0原文

你好 我正在尝试创建一个新的 drupal 主题,它有许多不同的页面和许多不同的样式页面和许多 css 文件。 该模板适用于具有特定模块的特定网站,当然每个模块都有自己的模板 我正在禅宗下开发我的主题。 在模板 .info 中,我定义了许多 css 文件,我的问题是: 我想要 Drupal 加载特定模块下的每个 .CSS 文件 drupal 有条件样式表仅适用于其他浏览器[如 IE6 IE7 ,...],但没有任何内容可以加载到特定模块中

hi
i'm trying to create a new drupal theme which has many different pages and many diffrent style pages and many css files.
The template is for a specific website with specific modules and ofcourse each module has it own template
i am developing my theme under zen.
in template .info i had defined manay css files and my problem is:
I WANT DRUPAL LOAD EACH .CSS FILE UNDER A SPECIFIC MODULE
drupal has conditional stylesheet just for oher browsers[like IE6 IE7 , ...] but nothing for load in a specific module

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

农村范ル 2024-10-04 21:51:03

您可以在主题的 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 。

You can write your own rules in template.php file of your theme.
I'm often use this trick not for different modules, but for different paths.

    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);

Put this into template.php in phptemplate_preprocess_page function and now if you have a page with address http://example.com/catalog, you can use page-catalog.tpl.php and style-catalog.css for it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文