Gabriele Carbonai
Gabriele Carbonai

Reputation: 459

Prestashop adding css issue

I try to add external css but is not work property,

I am use prestashop version 1.7.4.3

in install() function I call the hooks

&& $this->registerHook('displayHeader')
&& $this->registerHook('backOfficeHeader')

inside the hook, i registering the css and js files

public function hookDisplayHeader($params)
{
    $this->context->controller->addCSS(($this->_path) .'views/css/style.css');
    $this->context->controller->addJS(($this->_path) .'views/js/script.js');
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');

}

public function hookBackOfficeHeader(){
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
    $this->context->controller->addCSS(($this->_path) .'views/css/module.css');
    $this->context->controller->addJqueryUI('ui.sortable');

}

in hookBackOfficeHeader() I don't have any problem, but in hookDisplayHeader() doesn't want to register font awesome.

I try to use registerStylesheet() instead to addCss() but is not working at all.

Why this different between the two functions? it is, maybe because hookDisplayHeader doesn't accept external file?

Thank you

edit:

I solved with registerStylesheet() and registerJavascript()

public function hookDisplayHeader($params)
{
     $this->context->controller->registerStylesheet(
        'sidemenu',
        ($this->_path) .'views/css/style.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 150]
    );
     $this->context->controller->registerJavascript(
        'sidemenu-js',
        ($this->_path) .'views/js/script.js',
        ['server' => 'remote', 'position' => 'head', 'priority' => 120]
    );

    $this->context->controller->registerStylesheet(
        'remote-font-awesom',
        'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 20]
    );
}

Upvotes: 0

Views: 464

Answers (2)

Alexander Grosul
Alexander Grosul

Reputation: 1814

Also for adding font-awesome you better to use requireAssets(array('font-awesome')) something like this

$this->context->controller->requireAssets(array('font-awesome'));

Upvotes: 1

ethercreation
ethercreation

Reputation: 1273

Backward compatibility is kept for the addJS(), addCSS(), addJqueryUI() and addJqueryPlugin() methods. Incidentally, now is the best time to update your libraries and use the new method.

When developing a PrestaShop module, you may want to add specific styles for your templates. The best way is to use the registerStylesheet and registerJavascript methods provided by the parent FrontController class.

Look link : https://devdocs.prestashop.com/1.7/themes/getting-started/asset-management/

Regards

Upvotes: 0

Related Questions