我正在开发一个自定义的Prestashop模块。要求很简单:将预定义的javascript代码块添加到购物流程的特定部分。那些是:
代码将特定于每个页面。
我已经阅读了模块开发的基础知识,但是我找不到这个特定功能的文档。
我已经有一个可以从后台管理员安装和配置的工作模块。我假设我需要扩展页脚并检查当前正在服务的页面,但我不知道如何执行此操作。
答案 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),然后在该钩子中为要添加脚本的每个页面添加一个条件。