Фев
25
2010

Как удалить загрузку системных стилей в drupal

При темизации drupal я не раз сталкивался с проблемой, когда у меня подгружаются помимо моих стилей ещё и всякеие стандартные стили. Например modules/system/system.css, modules/system/system-menus.css, modules/system/defaults.css и прочее. Как же отключить загрузку этих стандартных css?
Всё просто. В файле template.php добавьте если нету функцию phptemplate_preprocess_page или mytheme_preprocess_page (mytheme – это название вашей темы). Как у вас будет называться функция – не очень принципиально. Различие лишь в том, что сперва будет выполняться phptemplate_preprocess_page, а потом mytheme_preprocess_page. Т.е. вы можете в mytheme_preprocess_page переписать изменения сделанные в phptemplate_preprocess_page
Итак, ближе к делу: если функции нету, то добавляем её, а если есть, то дописываем в неё.

function pixby_preprocess_page(&$vars, $hook) {
  $css = $vars['css'];
  // var_dump($css); // раскомментируйте эту строчку если хотите увидеть все подгружаемые на данном этапе css
  unset($css['all']['module']['modules/system/system.css']);
  unset($css['all']['module']['modules/system/defaults.css']);
  unset($css['all']['module']['modules/system/system-menus.css']);

  $vars['styles'] = drupal_get_css($css);
}

Кстати при работе с zen, где ваша тема является подтемой от основной, т.е. zen, тоже иногда мешают стандартные css zen. И их тоже можно убрать приведённым выше способом. Но есть и другой вариант убирать такие стили: переписать их. Например в папке темы zen есть стиль zen.css и мы хотим его переписать. Всё очень просто: создаём в папке своей темы такой же файл (можно и скопировать, а потом делать свои изменения). И теперь в info файле вашей темы (mytheme.info) добавляем строчку:

stylesheets[all][] = zen.css

Всё. Теперь вместо файла sites/all/themes/zen/zen/zen.css будет загружаться ваш: sites/all/themes/mytheme/zen.css

2 Comments to "Как удалить загрузку системных стилей в drupal"

  1. subSounds wrote:

    Я конечно, прошу прощения, но это всё не подходит. Есть другие варианты?

  2. yas wrote:

    в каком смысле не подходит?
    ну другой вариант это помещать в папку вашей темы одноимённые css с теми, что подгружаются из родительской темы или от модулей. судя по документации должны переписаться. хотя мне лично удобней такой вариант.

Leave Your Comment