Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Ajouter des feuilles de style via l'API

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 :

  • En fonction des endroits et des moments au cours desquels ont lieu l'ajout des feuilles de style, des appels à drupal_get_css devront être faits pour les inclure. Les feuilles de style sont d'abord récupérées dans template_preprocess_page. Reportez-vous à Preprocessors and variables pour les détails sur l'ordre des pré-traitements.
  • drupal_add_css comporte un paramètre pour regrouper les feuilles de style ajoutées. Pensez à le désactiver, comme ci-dessus, lors de l'ajout dynamique des feuilles de style car les fichiers ajoutés forcent la régénération d'une grande feuille de style, ce qui peut ralentir la transmission de la page et consommer de la bande passante.

Où ajouter le code ?

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.