Jump to content

Fonction setMedia() dans un module


Recommended Posts

Bonjour à tous,

 

Je développe actuellement un petit module, et je veux charger dans un des controllers utilisés pour le front office, un fichier js. Je veux utiliser la fonction setMedia. Le fichier n'est jamais chargé...

Voilà le code :

 

class MonmoduleInscriptionModuleFrontController extends ModuleFrontController {


	public function setMedia()
	{
		parent::setMedia();
		$this->addJS(_PS_MODULE_DIR_ .'monmodule/test.js');
		$this->addJS(_PS_MODULE_DIR_ .'monmodule/test.css');
	}

 

Le css n'est pas chargé non plus

Je ne comprend pas ce qui cloche...quelqu'un a une idée ?

 

Merci :)

Edited by Zulian (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Je suis débutante donc c'est peut être une question idiote mais :

 

Tu veux que le js soit chargé dans le front office ou tu veux l'utiliser dans ton module en bo ?

 

Pour charger le js en front office, j'utilise le hook header.

public function hookDisplayHeader($params){
Tools::addCSS(($this->_path).'moncss.css', 'all');
Tools::addJS(($this->_path).'monjs.js', 'all');
}

 

sinon dans les exemples que j'ai pu observer :

 

  public function setMedia()
	  {
			parent::setMedia()
			Tools::addJS(_PS_MODULE_DIR_ .'monmodule/test.js');
			Tools::addCSS(_PS_MODULE_DIR_ .'monmodule/test.css');
			}

Edited by olo (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Oui la méthode des Hooks fonctionne, mais j'aurais aimé chargé le js juste dans ce controller, et dans l'idéal utiliser la fonction prévue pour ça ^^ ! en fait ça m'énerve que ça ne fonctionne pas alors que ça devrait :P j'ai temporairement chargé mes scripts et css directement dans le tpl mais je trouve ça crado...

Link to comment
Share on other sites

  • 1 month later...

Coucou,

 

J'ai fixe le probleme de cette maniere et tout se met en place nickel:

 

$this->context->controller->addJS(_MODULE_DIR_.$this->module->name.'/views/js/<YOUJAVASCRIPT FILE>');

 

La doc indique que les css et js doivent etre sous le repertoire views, ce qui a effectivement du sens.

 

Cordialement,

RaPhiuS

Link to comment
Share on other sites

  • 1 year later...

Bon je déterre un peu le topic, désolé. Mais j'ai le même soucis. La solution de Raphius fonctionne mais j'ai bien peur qu'elle ne permette pas d'utiliser l'override du css par la suite c'est dommage.

 

Quelqu'un à trouvé la solution pour intégrer plus proprement un css via le controller d'un module ?

Link to comment
Share on other sites

  • 7 months later...

Bonjour,

Je travaille sur une version 1.5.6.2 et j'ai rencontré ce problème.  J'ai réussi à faire appel au fichier js à l'aide de ce code :

public function setMedia(){
parent::setMedia();
   $this->addJS('/modules/monmodule/test.js'); //cas où le fichier js se trouve à la racine    du module "monmodule".
}

Il semble que le soucis vient de la fonction getJSPath de la classe Media qui rajoute la racine du site et donc fausse le chemin du fichier.

Edited by Julien de Webed (see edit history)
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...