如何在 prestashop 1.7 中向 cms 页面添加挂钩

Posted

技术标签:

【中文标题】如何在 prestashop 1.7 中向 cms 页面添加挂钩【英文标题】:how to add hooks to cms pages in prestashop 1.7 【发布时间】:2018-05-01 10:40:51 【问题描述】:

我正在发现 PrestaShop 1.7 并尝试将模块添加到特定的 CMS 页面。

但是,CMS 页面不允许我运行任何 smarty 代码,这意味着我无法调用任何挂钩。

我通常会添加什么来将模块放在某个地方:

    hook h='displayMyhook'

我见过 1.6 的解决方案,但它们都围绕着编辑“CMS.tpl”,这在 1.7 中似乎不存在。

有人可以提出解决方案吗?

【问题讨论】:

nemops.com/how-to-hooks-prestashop-cms/#.WhKfeVWWbIU 【参考方案1】:

钩子创建:

public function install()

    return parent::install()
        && $this->registerHook('diplayAccessoryExtraProduct')
        && $this->registerHook('displayModalContent');

您可以使用您选择的名称创建一个挂钩:displayMyNewHook

在(任何)tpl 文件中显示挂钩:

block name='diplayAccessoryExtraProduct'
    hook h='diplayAccessoryExtraProduct' id_product=$product.id_product mod="mymodule"
/block

或(函数没有价值)

block name='diplayAccessoryExtraProduct'
    hook h='diplayAccessoryExtraProduct' mod="mymodule"
/block

模块中的功能:

public function hookDiplayAccessoryExtraProduct($params)

    $accessories = $this->getAccessories((int)$params['id_product']);
    $this->context->smarty->assign(array(
                'accessories_custom' => $accessories,    
        )
    );
    return $this->display(__FILE__, 'views/templates/front/accessory.tpl');


public function getAccessories($id_product)

    // Code
    return $result;

这是我开发的模块的真实示例。

【讨论】:

以上是关于如何在 prestashop 1.7 中向 cms 页面添加挂钩的主要内容,如果未能解决你的问题,请参考以下文章

Prestashop 1.7 模块目录数据未找到

PrestaShop 1.7 如何启用 debug 模式

PrestaShop 1.7 如何启用 debug 模式

如何通过Prestashop API使用python请求更新字段?在Prestashop 1.7

如何删除 prestashop 1.7 上的送货步骤?

如何在 prestashop 1.7 中对自定义页面进行 ajax 请求