Jump to content

Link D'un Fichier Css Sur Une Seule Page


Recommended Posts

Bonjour,

 

je suis novice sur Prestashop, j'ai encore un peu de mal à réaliser exactement ce que je veux.

J'ai créé un module qui me permet d'afficher sur une page que j'ai créé un formulaire. J'ai donc créé le controller de ma page, le template, j'ai activé l'url etc... ça pas de problème.

Pour la mise en page, de cette fameuse page, je veux linker mon fichier CSS.

J'ai donc ajouté à mon module dans la fonction install()

$this->registerHook('header')

et créé la fonction

public function hookDisplayHeader()
{
    $this->context->controller->addCSS($this->_path.'views/css/display.css', 'all');
}

Problème, le fichier CSS est link sur toutes les pages du site.

Comment pourrais je faire pour qu'il ne soit link que sur la page que j'ai créé ?

 

Merci

Crdlt

Link to comment
Share on other sites

mais je comprends pas

Si tu as créé un controller, rien à voir avec le hook d'un module

Dans ton controller setMedia() pour injecter le css, juste quand ce controller se lance

 

Tu as tout à fait compris, c'est juste que je débute, j'ai pas encore toutes les connaissances. Merci ça m'a l'air tout à fait ce que je cherchais :)

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

On l'utilise comme ça ?

Link to comment
Share on other sites

public function setMedia()
{
	parent::setMedia();
/*	$this->context->controller->addCSS($this->_path.'views/css/display.css'); */
	$this->addCSS('view/css/display.css');
}

Dans mon controller j'ai rajouté ça. ça ne marche pas... $this->addCSS ne s'utilise pas comme ça ? J'ai essayé plein de path différent rien n'y fait.

Dois-je appeler setMedia dans la fonction initContent de mon controller ? ou autre part dans le controller ?

Link to comment
Share on other sites

Juste pour être sûr, tu es bien dans un fichier modules/mymodule/controllers/front/XXXXController.php

qui a cette tête en gros

class XXXXXXXController extends ModuleFrontController
{

/// Something

public function setMedia()
{
  parent::setMedia();
  $this->addCSS(__PS_BASE_URI__.'modules/'.$this->module->name.'/mycss.css');
  // ^^ -> modules/mymodule/mycss.css override themes/yyy/css/modules/mymodule/mycss.css
}

//Something

}

J'écris un rien de tête donc fais pas un copier coller de ça

 

Edité pour corriger justement une typo

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

modules/myform/controllers/front/display.php

 

display.php

<?php

class myformdisplayModuleFrontController extends ModuleFrontController
{
	public function initContent()
	{
		parent::initContent();
		$this->setTemplate('display.tpl');
	}

	public function postProcess()
	{
		if (Tools::isSubmit('submit'))
		{
			if (Tools::getValue('1') == 'maison')
						$this->context->smarty->assign(array('test' => 'maison'));
			else if (Tools::getValue('1') == 'appartement')
						$this->context->smarty->assign(array('test' => 'appartement'));
			else
						header('Location: index.php');
		}
	}

	public function setMedia()
	{
		parent::setMedia();
		$this->addCSS('modules/myform/view/css/display.css', 'all');
	}

}

?>

le css est dans modules/myform/views/css/display.css

Link to comment
Share on other sites

Ta question c'est quel chemin mettre dans addCSS,

je te dis de mettre $this->addCSS(__PS_BASE_URI__. ...

et tu réponds en mettant $this->addCSS( ...

 

Ben il en manque un bout,

 

regarde ligne 1301 de classes/controller/FrontController.php

Link to comment
Share on other sites

J'ai copié mon fichier ici, avant d'essayer ce que tu m'as dit, ça va je suis pas abruti. Et ça ne marche pas de toute façon.

Je débute sur Prestashop, pas besoin d'être aussi hautain. Je suis développeur, je suis pas un gamin de 12ans.

J'ai pas l'habitude de crier au secours comme ça, mais je ne trouve aucune doc officiel sur Prestashop, donc comment connaître les Class et les méthodes qui existent... J'en ai aucune idée, comment connaître leur prototype aucune idée non plus. Donc je viens ici pour apprendre des autres, pas pour me faire traiter de "abruti tu fais pas ce que je te dis".

 

Bref, sinon je bosse avec prestashop 1.6, on sait jamais.

 

 

C'est bon merci, maintenant je sais où aller voir pour avoir le prototype des méthodes. Merci

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

hautain ... ?!?

ça ne marche pas de toute façon ??!!??

Quand à lire ce que j'écris tu y mets le ton que tu veux, mais ce n'est pas le ton avec lequel je l'écris.

Si je remets en gros et gras et que je répète c'est pour être sûr que ce ne soit pas justement un lecture un peu rapide qui t'amène à misérer pour une inattention.

 

la doc officielle technique c'est lire le code avec PrestaShop, c'est pas ma faute quand même

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...