Проблема условной таблицы стилей drupal! - PullRequest
1 голос
/ 16 октября 2010

привет я пытаюсь создать новую тему drupal, которая имеет много разных страниц, много разных стилей и много CSS-файлов. Шаблон предназначен для определенного веб-сайта с определенными модулями, и, конечно, каждый модуль имеет свой собственный шаблон. Я разрабатываю свою тему под дзен. в шаблоне .info я определил manay css файлы и моя проблема: Я ХОЧУ ЗАГРУЗИТЬ КАЖДЫЙ ФАЙЛ .CSS В КОНКРЕТНОМ МОДУЛЕ drupal имеет условную таблицу стилей только для других браузеров [например, IE6, IE7, ...], но ничего для загрузки в конкретный модуль

1 Ответ

1 голос
/ 16 октября 2010

Вы можете написать свои собственные правила в файле 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);

Поместите это в template.php в функции phptemplate_preprocess_page, и теперь, если у вас есть страница с адресом http://example.com/catalog,, вы можете использовать для нее page-catalog.tpl.php и style-catalog.css.

...