如何在 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 页面添加挂钩的主要内容,如果未能解决你的问题,请参考以下文章