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