Ajouter des classes CSS à la balise body facilement

Ajouter des classes CSS à la balise body facilement

19 Jun 2011 |  Drupal

Je ne sais pas si vous avez déjà voulu ajouter une classe sur la balise body en Drupal 6 mais ce n’était pas le truc le plus évident à faire. La meilleure solution se résumait à modifier le fichier template.php, à implémenter le hook template_preprocess() et à ajouter ses valeurs au tableau $vars[‘body_classes’], bref, par rapport au besoin c’était un poil compliqué.

Drupal 7 permet maintenant de faire ça plus facilement et directement dans un .module. Pour cela il faut utiliser le hook : hook_preprocess_HOOK() qui permet aux modules d’intervenir sur sur n’importe quel preprocess de thème.

/**
* Implements hook_preprocess_HOOK().
*/
function sandbox_preprocess_html(&$vars) {
 // Ajout d'une nouvelle classe au body
 $vars['classes_array'][] = 'ma-nouvelle-classe';
}

Puisque la construction html de la page et donc la génération des classes pour le body est faite lors du template_preprocess_html il nous faut implémenter le hook_preprocess_html. Dans l’exemple ci-dessus j’ai juste ajouté une nouvelle classe à mon body mais vous pouvez faire tout ce que vous voulez lors de cette étape vous avez entre les mains toutes les infos permettant la construction de la structure html de la page.

Alors, la vie n’est pas plus simple avec Drupal 7 ? :)

Crédits Photo - exey

Julien Dubreuil

Vous avez une idée, un projet web à réaliser ?

Ensemble, mettons en oeuvre sa réussite. Je vous accompagne dans vos projets, depuis l'élaboration du cahier des charges jusqu'à la mise en production. Pour plus d'information n'hésitez pas à me contacter.

Contactez-moi