Php 使用Prestashop模块向特定页面添加Javascript代码

Php 使用Prestashop模块向特定页面添加Javascript代码,php,prestashop,Php,Prestashop,我正在开发一个定制的Prestashop模块。要求很简单:向购物过程的特定部分添加预定义的javascript代码块。这些是: 主页 产品页 产品添加到购物车 购买完成 代码将特定于每一页 我已经阅读了模块开发的基础知识,但是我找不到这个特定功能的文档 我已经有了一个可以从后台管理员处安装和配置的工作模块。我假设我需要扩展页脚并检查当前正在服务的页面,但我不知道如何做。这比看起来更简单:),您必须检查您所在的页面,在hookDisplayHeader方法中添加一些,如果: public fu

我正在开发一个定制的Prestashop模块。要求很简单:向购物过程的特定部分添加预定义的javascript代码块。这些是:

  • 主页
  • 产品页
  • 产品添加到购物车
  • 购买完成
代码将特定于每一页

我已经阅读了模块开发的基础知识,但是我找不到这个特定功能的文档


我已经有了一个可以从后台管理员处安装和配置的工作模块。我假设我需要扩展页脚并检查当前正在服务的页面,但我不知道如何做。

这比看起来更简单:),您必须检查您所在的页面,在
hookDisplayHeader
方法中添加一些
,如果

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 */
}

它比看起来更简单:),您必须在
hookDisplayHeader
方法中检查您所在的页面,添加一些
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 */
}

js中还有一个全局变量

page_name

js中还有一个全局变量

page_name

PrestaShop中的每个页面都有一个唯一的page_name smarty变量值

此变量的值可以通过任何控制器中的以下代码获取:

$this->context->smarty->tpl_vars['page_name']->value

您可以添加一个钩子(即hookHeader),然后为要添加脚本的每个页面在该钩子中添加一个条件。

PrestaShop中的每个页面都有一个唯一的page_name smarty变量值

此变量的值可以通过任何控制器中的以下代码获取:

$this->context->smarty->tpl_vars['page_name']->value
您可以添加一个钩子(即hookHeader),然后为要添加脚本的每个页面在该钩子中添加一个条件