Quando un modulo ha fogli di stile propri, questi devono essere caricati prima di visualizzare il contenuto della pagina generata dal modulo. Nella pagina HTML generata da Drupal i file di stile compaiono secondo la sequenza:
stile/i del modulo corrente
stile/i del modulo corrente contenuti nel tema corrente
stili di default di Drupal
stili del tema corrente
come di seguito indicato.
<style type="text/css" media="all">@import "/sites/all/modules/miomodulo/miomodulo.css"</style>
<style type="text/css" media="all">@import "/sites/all/themes/miotema/miomodulo.css"</style>
<style type="text/css" media="all">@import "/modules/book/book.css"</style>
<style type="text/css" media="all">@import "/modules/node/node.css"</style>
<style type="text/css" media="all">@import "/modules/system/defaults.css"</style>
<style type="text/css" media="all">@import "/modules/system/system.css"</style>
<style type="text/css" media="all">@import "/modules/user/user.css"</style>
...
<style type="text/css" media="all">@import"/sites/all/themes/miotema/style.css"</style>
Per fare questo รจ utilizzata la funzione drupal_add_css() secondo il codice riportato.
L'esempio riporta il codice necessario per caricare il foglio di stile miomodulo.css.
Questo codice deve essere chiamato dalle funzioni del modulo che preparano codice HTML.
function miomodulo_css_file() {
$css_files = array(); // array in cui definire i file css
// Definisce i percorsi dei file di stile
$file_css_modulo = drupal_get_path('module', 'miomodulo') . '/miomodulo.css';
$file_css_modulo_in tema = path_to_theme() . '/miomodulo.css'; // se esistente
// Definisce nell'array lo stile di default del modulo
$css_files[] = array('file' => $file_css_modulo, 'type' => 'module', );
/*
Definisce nell'array lo stile ripetuto nella directory del tema corrente
Se esiste un file di stile nella directory del tema corrente
con lo stesso nome dello stile del modulo lo carica.
*/
if (file_exists($file_css_modulo_in tema) {
$css_files[] = array('file' => $file_css_modulo_in tema, 'type' => 'theme', );
}
// Avvisa Drupal di caricare i fogli definiti
foreach ($css_files as $css_file)
{
drupal_add_css($css_file['file'], $css_file['type'], 'all', false);
}
}