Traduction de la page http://drupal.org/node/225868
publiée / actualisée le 29 Janvier 2011 sur drupal.org
Pour la plupart des thèmes, ajouter des feuilles de style via le fichier .info sera suffisant. Mais comme ce fichier .info est statique, les feuilles de style ne peuvent pas être ajoutées dynamiquement. Selon la façon dont les thèmes gèrent les feuilles de style, cela peut n'avoir aucune incidence. En cas de doute, utilisez le fichier .info.
L'API comporte deux fonctions pour travailler avec les feuilles de style : drupal_add_css et drupal_get_css. Voici une exemple d'ajout dynamique de feuilles de style avec ces fonctions.
Remplacez le préfixe « drop » de la fonction par le nom de votre thème.
<?php
function drop_preprocess_page(&$variables) {
$front_style = path_to_theme() .'/front-page.css';
$path_style = path_to_theme() .'/path-'. arg(0) .'.css';
if (file_exists($front_style) && $variables['is_front']) {
$include_style = $front_style;
}
elseif (file_exists($path_style)) {
$include_style = $path_style;
}
if (isset($include_style)) {
drupal_add_css($include_style, 'theme', 'all', FALSE);
$variables['styles'] = drupal_get_css();
}
}
?>
Dans cet exemple, la feuille de style front-page.css sera utilisée pour la page d'accueil, et d'autres basées sur le chemin interne. Par exemple : http://example.com/admin utilisera une feuille de style nommée path-admin.css.
Quelques remarques :
Ce codee peut être ajouté dans le fichier template.php du dossier de votre thème. Il peut déjà y avoir une fonction nommée phptemplate_preprocess_page. Incorporez-là simplement dans le corps de votre fonction XXX__preprocess_page.
Vous devrez peut-être également modifier variables en vars pour que cela fonctionne.