I'm developing a custom Prestashop Module. The requirement is simple: Add a predefined block of javascript code to specific sections of the shopping process. Those are:
The code will be specific to each page.
I already read the basics of module development, but I can't find documentation for this specific functionality.
I already have a working module that is installable and configurable from the back office admin. I'm assuming I need to extend the footer and check the page currently being served, but I have no idea how to do this.
It's more simple than it appears :), you have to check in which page you are, in your hookDisplayHeader
method add some if
:
public function hookDisplayHeader($params){
/* some code */
// check if we are in homepage
if($this->context->controller->php_self == 'index'){
$this->context->controller->addJS('path-to-index-js');
}
// check if we are in product page
if($this->context->controller->php_self == 'product'){
$this->context->controller->addJS('path-to-product-js');
}
// and so on for all other pages
/* ... */
/* some code */
}
Also there is a global variable in js
page_name
Every page in PrestaShop has a unique value of page_name smarty variable.
This variable's value can be fetched through the following code in any controller:
$this->context->smarty->tpl_vars['page_name']->value
You can add a hook (i.e. hookHeader) and then add a condition in that hook for every page where you want to add the script.