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

问题描述 投票:1回答:3

我正在开发一个自定义的Prestashop模块。要求很简单:将预定义的javascript代码块添加到购物流程的特定部分。那些是:

  • 主页
  • 产品页面
  • 产品已添加到购物车
  • 购买完成

代码将特定于每个页面。

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

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

php prestashop
3个回答
8
投票

它比它看起来更简单:),你必须检查你是哪个页面,在你的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 */
}

1
投票

js中还有一个全局变量

page_name

-2
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.