Suppression ou remplacement des fichiers CSS standards
Parfois, il est nécessaire de modifier ou de supprimer les fichiers CSS standards : system.css, defaults.css ou system-menus.css. Bien sûr, on peut modifier ces fichiers, mais lors de la mise à jour de Drupal, on peut oublier ces modifications et ces fichiers seront écrasés. Pour éviter cela, il faut exclure ces fichiers de la liste des CSS chargés par Drupal. Si certains styles de ces fichiers vous sont utiles, vous pouvez les copier dans le fichier style.css de votre thème et les modifier là. Ainsi, vous protégerez votre code CSS contre une suppression accidentelle.
Créez donc un fichier template.php dans le dossier de votre thème, s’il n’existe pas déjà. Dans ce fichier, insérez le code suivant :
function phptemplate_preprocess_page(&$vars) { $css = $vars['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); }
Maintenant, le code CSS provenant de ces fichiers peut être copié dans style.css et modifié à volonté.
Cela s’applique également aux fichiers CSS du module Nice menu, très souvent utilisé pour créer des menus déroulants. Il est préférable de modifier le CSS dans style.css. Insérez le code suivant pour exclure les fichiers CSS du module Nice menu :
function phptemplate_preprocess_page(&$vars) { $css = $vars['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']); unset($css['all']['module']['sites/all/modules/nice_menus/nice_menus.css']); unset($css['all']['module']['sites/all/modules/nice_menus/nice_menus_default.css']); $vars['styles'] = drupal_get_css($css); }
À noter que nice_menus/nice_menus_default.css est le chemin vers le fichier ; dans ce cas, le module Nice menu se trouve dans le dossier nice_menus sans indication de version du module.