我发现了PrestaShop 1.7,我正在尝试将模块添加到特定的CMS页面。
然而,CMS页面不允许我运行任何智能代码,这意味着我无法调用任何钩子。
我通常会添加一个模块放在某处:
{hook h='displayMyhook'}
我见过1.6的解决方案,但它们都围绕着编辑" CMS.tpl"这似乎不存在于1.7中。
有人可以提出解决方案吗?
答案 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;
}
这是我开发的模块的真实示例。