Reputation: 459
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
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
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