Как избавиться от таблиц стилей Drupal CSS?

Я пытаюсь выполнить следующее. Я должен использовать Drupal 6 в качестве проектного требования, но я хочу использовать его со своими собственными таблицами стилей HTML и CSS для каждого узла/представления/панели и т.д.

Проблема, безотносительно темы я всегда находил, что Drupal обращается к моему содержимому HTML и мои таблицы стилей CSS и CSS, связанный с выбранной темой. Я также попробовал, без успеха, с помощью stylestripper модуля (установленный в sites/all/modules). Независимо от того, что я делаю, дополнительные таблицы стилей CSS применяются к моим страницам, полностью уничтожая мое расположение.

Что надлежащий путь состоит в том, чтобы достигнуть этого? Почему stylestripper не работает вообще? Существует ли абсолютно пустая доступная тема? Я попробовал основной, mothership, дзэн и т.д., но я всегда вижу, дополнительные таблицы стилей CSS относились к моим страницам.

Это сводит меня с ума, Drupal был выбран кем-то еще для его гибкости.Заранее спасибо.

9
задан sepehr 28 May 2010 в 20:43
поделиться

2 ответа

<?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 .

Обновление:
Надлежащее место для размещения этой функции - в шаблоне .php вашей темы. На самом деле в вашем случае вам нужно передать массив имен файлов css, которые вы хотите исключить.
Вызов drupal_add_css () без переданных аргументов предоставит $ css массив файлов CSS, которые будут прикреплены к вашей теме. . Так что сейчас самое подходящее время, чтобы войти!

Как видите, в первом цикле foreach мы просто ищем массив $ css для имен файлов, которые существуют в переданном массиве $ exclude , для удаление стиля. И мы проделываем ту же работу во втором цикле для вставки стиля. И в конце мы возвращаем тематическое представление всех стилей, которые должны быть прикреплены к теме, используя функцию 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);
}

Я уверен, что вы знаете, как исключить их всех;)

6
ответ дан 4 December 2019 в 23:06
поделиться

Я не могу, это сработает, но я думаю, просто удалите следующую строку в page.tpl.php вашей темы

 <?php echo $styles ?>

и тогда drupal не будет использовать свои собственные стили ..
это может сработать для вас.


Nitz
0
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: