Olivier CLEMENCE Posted May 5, 2017 Share Posted May 5, 2017 Hello tout le monde. Je cherche à comprendre comment ajouter proprement une classe css au body d'une page généré par mon module. Mon module créé une page dans le compte de l'utilisateur et pour que l'affichage soit propre sur PS1.7 il faut que je rajoute la classe "page-customer-account" sur le body de ma page. La fonction qui rajoute les classes css sur le body se trouve dans FrontController.php et la voici: public function getTemplateVarPage() { $page_name = $this->getPageName(); $meta_tags = Meta::getMetaTags($this->context->language->id, $page_name); $my_account_controllers = array( 'address', 'authentication', 'discount', 'history', 'identity', 'order-follow', 'order-slip', 'password', 'guest-tracking', ); $body_classes = array( 'lang-'.$this->context->language->iso_code => true, 'lang-rtl' => (bool) $this->context->language->is_rtl, 'country-'.$this->context->country->iso_code => true, 'currency-'.$this->context->currency->iso_code => true, $this->context->shop->theme->getLayoutNameForPage($this->php_self) => true, 'page-'.$this->php_self => true, 'tax-display-'.($this->getDisplayTaxesLabel() ? 'enabled' : 'disabled') => true, ); if (in_array($this->php_self, $my_account_controllers)) { $body_classes['page-customer-account'] = true; } $page = array( 'title' => '', 'canonical' => $this->getCanonicalURL(), 'meta' => array( 'title' => $meta_tags['meta_title'], 'description' => $meta_tags['meta_description'], 'keywords' => $meta_tags['meta_keywords'], 'robots' => 'index', ), 'page_name' => $page_name, 'body_classes' => $body_classes, 'admin_notifications' => array(), ); return $page; } Le problème c'est que je ne vois pas comment l'appeler depuis mon module pour y ajotuer ma classe css sans la ré-écrire complètement. Est-ce que je suis passé à coté de quelque chose ? Pour la team Prestashop il aurait été bon de prévoir une variable dans l'appel de cette fonction pour qu'on puisse rajouter nos propres class css au body de n'importe quelle page créée par nos modules. public function getTemplateVarPage($arryCssClasses) Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted May 5, 2017 Author Share Posted May 5, 2017 Ok bon on peut faire comme ça: public function getTemplateVarPage() { $page = parent::getTemplateVarPage(); $page['body_classes']['page-customer-account'] = true; return $page; } Mais franchement la fonction mériterai d'être revue pour simplifier la chose 1 Link to comment Share on other sites More sharing options...
Yann - Prestaplugins Posted May 5, 2017 Share Posted May 5, 2017 Et en jquery ça te plaisait pas ? Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted May 5, 2017 Author Share Posted May 5, 2017 c'est moins propre en jquery je trouve. 1 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