Jump to content

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.

Link to comment
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.

Link to comment
Share on other sites

  • 3 weeks later...

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

Link to comment
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

Link to comment
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
×
×
  • Create New...