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

时间:2016-11-02 04:34:25

标签: php prestashop

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

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

代码将特定于每个页面。

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

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

js中还有一个全局变量

page_name

答案 2 :(得分:-2)

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

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

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

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