Come disabilitare i CSS di Drupal 7

Come disabilitare i CSS di Drupal 7

Il CMS Drupal ed i suoi moduli utilizzano moltissimi file CSS per l'aspetto grafico delle pagine. Talvolta gli stili definiti da questi file potrebbero essere eccessivi e richiedere particolari hack nel foglio di stile di un tema per ottenere i risultati desiderati. In alcune situazioni potrebbe quindi essere utile disabilitare completamente tutti o solo alcuni file CSS.

Esistono diversi modi per disabilitare i file CSS di Drupal, in questo approfondimento vedremo come effettuare l'operazione direttamente da un tema. L'esempio è valido per Drupal 7.

Drupal 7 mette a disposizione un hook per modificare i file CSS caricati dal core e dai moduli. Questo aggancio può essere quindi usato nel template per disabilitare tali file.

Più precisamente la funzione è: theme_css_alter().

Per poterla usare in un tema, che per esempio chiameremo "temadrupaldiprova",  si deve modificare il file template.php nel seguente modo:

/**
 * Implements hook_css_alter().
 * Funzione per disabilitare i fogli di stile di Drupal core e dei moduli
 */
function temadrupaldiprova_css_alter(&$css) {
    $excluded_css = array();
    $excluded_css[] = 'sites/all/modules/modulename/css/filedaescludere.css';
    $excluded_css[] = 'ALTRO_PERCORSO_FILE_CSS_DA_ESCLUDERE';
    // ... si possono aggiungere eventuali altri file css

    foreach ($excluded_css as $index => $path) {
      unset($css[$path]);
    }
}

Per prima cosa segnalo che al posto di "temadrupaldiprova" andrà scritto il nome del tema in cui si sta lavorando. Poi, come si può notare dal codice di esempio, sono specificati tutti i percorsi dei file CSS che si desidera escludere. Se ne possono mettere anche più di uno.

Infine ogni file verrà effettivamente rimosso dall'insieme di CSS che solitamente vengono caricati in una pagina.

Attenzione: ricordo che anche su Drupal 7 quando si aggiungono funzioni nel file template.php è sempre consigliato svuotare la cache di Drupal per rendere operative le modifiche.