使用Prestashop模块将Javascript代码添加到特定页面

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:

  • Home page
  • Product page
  • Product added to cart
  • Purchase completed

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.