Jump to content
Sign in to follow this  
creacom

Charger des fichiers (js, swf...) lors de l'utilisation d'un module

Recommended Posts

J'aimerais savoir s'il est possible, sans bidouiller le core, de charger des fichiers (js, css, swf...) lors de l'utilisation d'un module particulier :

en l'occurence je voudrais pouvoir intégrer l'outil swfupload pour m'aider à gérer à la fois l'envoi de gros fichiers et aussi pour l'envoi multiple. Or celà nécessite que dans la page d'administration on puisse charger les fichiers nécessaires (swfupload.js ...)

 

Existe t'il une méthode du type

Tools::addJS(_MODULE_DIR_.'monmodule/js/monfichier.js', 'all');

qui fonctionne pour l'administration ? Ca serait très pratique.

 

Merci d'avance.

Share this post


Link to post
Share on other sites

Salut.

 

Il faut que tu ajoutes le module à un hook : "backOfficeHeader".

 

Ensuite, dans ton module, tu crées la fonction "hookBackOfficeHeader".

 

Dedans, tu ajoutes du code HTML des liens JS et CSS.

 

Tu retournes ce code HTML.

Share this post


Link to post
Share on other sites

Merci beaucoup !

 

Juste dommage que

Tools::addJS() ne fonctionne pas dans ce hook backOfficeHeader.

 

Il faut retourner le code <script....>

 

Mais ça fonctionne sinon.

Share this post


Link to post
Share on other sites

Bonjour,

 

tu peux ajouter tes fichiers css et javascript dans le controller de ton module, dans la fonction setMedia()

Share this post


Link to post
Share on other sites

Bonjour, tu dis

tu peux ajouter tes fichiers css et javascript dans le controller de ton module, dans la fonction setMedia()

Je ne suis pas sur de comprendre (en même temps je n'utilise pas prestashop depuis assez longtemps pour connaitre toutes les subtilités :) ) mais ce controlleur dont tu parles c'est pas le FrontController ? il agit la partie Front office non ? Or moi, je souhaite ajouter mes fichiers js et css pour l'administration d'un module.

Ca c'est pour ma culture personnelle.

 

Sinon, plus grave : mon module fonctionne bien avec le js et css ajouté dans le hookBackOfficeHeader ... sauf que ces fichiers ne sont pas chargés que pour ce module : ils ne doivent être spécifiques qu'à ce module, mais ils se chargent dans TOUS les modules ! donc j'ai forcément des alertes erreurs js dans mon firebug, car un de mes js appelle un id qui n'existe pas ailleurs...

 

Donc ma question : est-ce une contrainte du chargement de fichier avec hookBackOfficeHeader de rendre les fichiers chargés disponibles pour toutes les pages de l'administration ou y'a t'il un moyen (propre ?) de limiter le chargement à seulement le module concerné ?

 

merci d'avance

Share this post


Link to post
Share on other sites

J'ai rencontré aussi ce problème : je n'inclus ces fichiers que si la variable GET configure vaut le nom de mon module ;)

Share this post


Link to post
Share on other sites

Je ne vois pas trop comment tu procèdes : dans la mesure où la configuration est accessible depuis n'importe quelle page, un code du genre

 

if (Configuration::get('cle_nomdumodule') == 'lenomdumodule))

 

sera vrai pour toutes les pages...

 

Peux-tu me donner un exemple de code ?

 

pour l'instant j'ai quelque chose du genre

 

fichier mp3player.php

 

class mp3player extends Module

{

function __construct()

{

$this->name = 'mp3player';

...

}

 

public function displayForm()

{

$output = '';

if ($this->name == 'mp3player') //J'ai aussi essayé ceci, mais ça ne change rien, le js est chargé dans toutes les pages

{

$output .= '<script type="text/javascript" src="'.($this->_path).'js/swfupload/swfupload.js"></script>';

$output .= ...

}

return $output;

}

}

 

Merci d'avance

Share this post


Link to post
Share on other sites

J'ai bien précisé la variable GET.

 

if (Tools::getValue('configure') == 'mymodulename')

Share this post


Link to post
Share on other sites

OK, ça fonctionne !

Encore merci

Ca serait typiquement le genre d'astuce qui aurait sa place dans une FAQ ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More