Cómo quitar CSS's de los módulos del core y contribuidos en un tema de Drupal 7

drupal.jpg
Solucionex
19
Sep 14

Muchas veces, durante el desarrollo de una web con Drupal, nos encontramos que los módulos del núcleo y los contribuidos nos añaden por defecto muchos archivos css que nos cargan la web de estilos innecesarios. Normalmente, por prisas o costumbre, lo primero que se nos ocurre es ir reescribiendo el código css en nuestro tema, redefiniendo aquello que creamos necesario.

Pero este trabajo puede ser muy laborioso y la hoja de estilos resultante puede ser muy engorrosa. Tenemos otra opción más eficiente: no cargar los estilos que no consideremos necesarios. Para ello, podemos utilizar alguno de los módulos contribuidos que aporta la comunidad, o bien utilizar unas pocas líneas de código.

La siguiente función te permite realizar esto:

function YOUR_THEME_css_alter(&$css) { // Remove Drupal core css $exclude = array( 'modules/aggregator/aggregator.css' => FALSE, 'modules/block/block.css' => FALSE, 'modules/book/book.css' => FALSE, 'modules/comment/comment.css' => FALSE, 'modules/dblog/dblog.css' => FALSE, 'modules/field/theme/field.css' => FALSE, 'modules/file/file.css' => FALSE, 'modules/filter/filter.css' => FALSE, 'modules/forum/forum.css' => FALSE, 'modules/help/help.css' => FALSE, 'modules/menu/menu.css' => FALSE, 'modules/node/node.css' => FALSE, 'modules/openid/openid.css' => FALSE, 'modules/poll/poll.css' => FALSE, 'modules/profile/profile.css' => FALSE, 'modules/search/search.css' => FALSE, 'modules/statistics/statistics.css' => FALSE, 'modules/syslog/syslog.css' => FALSE, 'modules/system/admin.css' => FALSE, 'modules/system/maintenance.css' => FALSE, 'modules/system/system.css' => FALSE, 'modules/system/system.admin.css' => FALSE, 'modules/system/system.base.css' => FALSE, 'modules/system/system.maintenance.css' => FALSE, 'modules/system/system.messages.css' => FALSE, 'modules/system/system.menus.css' => FALSE, 'modules/system/system.theme.css' => FALSE, 'modules/taxonomy/taxonomy.css' => FALSE, 'modules/tracker/tracker.css' => FALSE, 'modules/update/update.css' => FALSE, 'modules/user/user.css' => FALSE, 'misc/vertical-tabs.css' => FALSE, // Remove contrib module CSS drupal_get_path('module', 'views') . '/css/views.css' => FALSE, ); $css = array_diff_key($css, $exclude); }

Esta función deberá incluirse en el archivo 'template.php' de tu tema, y sustituir 'YOUR_THEME' en el nombre de la función por el nopmbre del tema.

Voilá!