creacom Posted October 14, 2011 Share Posted October 14, 2011 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 More sharing options...
Sbizz Posted October 14, 2011 Share Posted October 14, 2011 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 More sharing options...
creacom Posted October 14, 2011 Author Share Posted October 14, 2011 Merci beaucoup ! Juste dommage que Tools::addJS() ne fonctionne pas dans ce hook backOfficeHeader. Il faut retourner le code <script....> Mais ça fonctionne sinon. Link to comment Share on other sites More sharing options...
luci1 Posted October 15, 2011 Share Posted October 15, 2011 Bonjour, tu peux ajouter tes fichiers css et javascript dans le controller de ton module, dans la fonction setMedia() Link to comment Share on other sites More sharing options...
creacom Posted November 3, 2011 Author Share Posted November 3, 2011 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 More sharing options...
Sbizz Posted November 3, 2011 Share Posted November 3, 2011 J'ai rencontré aussi ce problème : je n'inclus ces fichiers que si la variable GET configure vaut le nom de mon module Link to comment Share on other sites More sharing options...
creacom Posted November 3, 2011 Author Share Posted November 3, 2011 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 More sharing options...
Sbizz Posted November 3, 2011 Share Posted November 3, 2011 J'ai bien précisé la variable GET. if (Tools::getValue('configure') == 'mymodulename') Link to comment Share on other sites More sharing options...
creacom Posted November 3, 2011 Author Share Posted November 3, 2011 OK, ça fonctionne ! Encore merci Ca serait typiquement le genre d'astuce qui aurait sa place dans une FAQ Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now