Prestashop 1.5.x : Ajouter un css ou un javascript d’un module uniquement sur un controlleur

Ce tutoriel est compatible avec les versions de Prestashop suivantes :
1.5 +
Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Dans le cadre du développement d’un nouveau module pour un site tournant sous prestashop 1.5,  celui-ci nécessite l’utilisation de fichiers css et javascripts spécifiques pour son bon fonctionnement.
Cependant ce module étant uniquement utilisé sur la fiche produit, je ne voyais pas l’intérêt de charger inutilement ces fichiers sur l’ensemble des pages du site.

Voici donc une astuce qui vous permettra de charger vos fichiers uniquement dans le controlleur nécessaire :
ProductController est donc à remplacer par le controller dans lequel vous souhaitez insérer vos contenus.

/**
* Hook Header Prestashop
* @param type $params
*/
public function hookHeader($params){
 
//Récupération du contexte
$context = Context::getContext();
 
//On ajoute uniquement nos éléments dans la fiche produit donc le controller "ProductController"
 if ( $context->controller instanceof ProductController ) {
 
 $this->context->controller->addCSS(($this->_path).'module-style.css', 'all');
 $this->context->controller->addJS(($this->_path).'js/module-js.js');
 }
}

N’oubliez pas de bien greffer votre module au Hook Header pour que ce code soit pris en compte.
Note : Ce code est uniquement valable avec prestashop 1.5.xx, car dans les versions 1.4.x et 1.3.x la notion de contexte n’existe pas

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *