如何在prestashop 1.7中添加钩子到cms页面

时间:2017-11-17 15:40:54

标签: prestashop hook prestashop-1.7

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

然而,CMS页面不允许我运行任何智能代码,这意味着我无法调用任何钩子。

我通常会添加一个模块放在某处:

    {hook h='displayMyhook'}

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

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

1 个答案:

答案 0 :(得分:0)

钩子创建:

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;
}

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