Jump to content

Ajouter une classe css au body (body_classes) (Ps 1.7)


Recommended Posts

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

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