Julien Chaumond Posted October 1, 2011 Share Posted October 1, 2011 Bonjour, Depuis la classe PHP d'un module, plus précisément depuis un Hook, comment savoir sur quel type de page (index, category, etc.) on se trouve ? (par exemple dans hookHeader, pour n'ajouter un javascript que si l'on en a vraiment besoin) J'utilise pour l'instant : global $smarty; $page = $smarty->tpl_vars['page_name']->value; Mais il y a surement plus simple... Merci ! Link to comment Share on other sites More sharing options...
jeckyl Posted October 3, 2011 Share Posted October 3, 2011 Bonjour, Prestashop utilise une fonction dans la version 1.3 pour arriver à ce résultat : /* get page name to display it in body id */ $pathinfo = pathinfo(__FILE__); $page_name = basename($_SERVER['PHP_SELF'], '.'.$pathinfo['extension']); $page_name = (preg_match('/^[0-9]/', $page_name)) ? 'page_'.$page_name : $page_name; 1 Link to comment Share on other sites More sharing options...
Julien Chaumond Posted October 11, 2011 Author Share Posted October 11, 2011 @jeckyl : Merci ! Bon, alors je vais rester sur ma solution alors, qui n'est pas très élégante, mais qui est probablement plus robuste C'est quand même assez hallucinant de ne pas avoir accès au nom de l'action depuis un hook. Link to comment Share on other sites More sharing options...
dubs494 Posted June 13, 2012 Share Posted June 13, 2012 Bonjour, je suis débutant en stage de premiere année et je dois justement recuperer le nom d'une page. Cependant apres avoir utilisé votre code, je l'envoi comment a ma fonction getContent(). Un input type hidden reglerai le probleme ? Merci de votre aide Link to comment Share on other sites More sharing options...
Tangence Web Posted March 25, 2017 Share Posted March 25, 2017 (edited) Bonjour à tous,J'ai bien vu que le dernier message date de 2012, mais j'ai eu le même problème et j'ai trouvé une autre solution, alors je la partage:Il suffit de charger de la fonction construct() le nom de la page qui vient du context (bien sur après le parent::construct) et la mettre dans une variable accessible dans les hooks. De mon point de vue, c'est beaucoup plus propre class xxxxx extends Module { ... private $pageName; public function __construct() { .... parent::__construct(); $this->pageName = $this->context->controller->php_self; } ... public function hookHeader() { if ($this->pageName == 'product') { $this->context->controller->addJS($this->_path . '/js/xxx.js'); } } } J’espère que cela va en aidé. Edited March 25, 2017 by Tangence Web (see edit history) 1 Link to comment Share on other sites More sharing options...
Tangence Web Posted March 25, 2017 Share Posted March 25, 2017 En me relisant, je vois que j'avais accés à la variable direct dans le hook.... donc pas besoin de le charger dans le construct... class xxxxx extends Module { ... public function hookHeader() { if ($this->context->controller->php_self == 'product') { $this->context->controller->addJS($this->_path . '/js/xxx.js'); } } } Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 25, 2017 Share Posted March 25, 2017 cela aurait était pas mal de préciser la version de PrestaShop utilisé car là on est sur un sujet abordant à la base la version 1.3. Link to comment Share on other sites More sharing options...
Tangence Web Posted March 25, 2017 Share Posted March 25, 2017 cela aurait était pas mal de préciser la version de PrestaShop utilisé car là on est sur un sujet abordant à la base la version 1.3. Prestashop 1.3, sujet de 2012... moi qui voulait pour une foi participer... Mea culpa, la prochaine fois j'irais moins vite Ah oui, j'allais oublié, l'objet Context a été introduit depuis la version 1.5 Numériquement votre (dévoué) 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