Prestashop:如何在模块中包含一个块?
Prestashop: How to include a block in a module?
我有一个模块,我想显示其中的 "blocknewproducts"。什么是最佳选择?
谢谢!
好的,我们缺少更多信息,但我会在 Prestashop 1 中分享一种方法。6.x:
您的模块:
鉴于您在模块 install 方法中有一个名为 displayMyModule 的自定义挂钩:
public function install() {
if (!parent::install() || !$this->registerHook('displayMyModule')) {
return false;
} else {
return true;
}
}
现在,您要在何处显示此挂钩的内容由您决定。例如,如果它位于类别页面上,则在 category.tpl 中添加
{hook::exec('displayMyModule')}
阻止新产品
现在要显示 blocknewproducts 我们将创建一个 override 这个核心模块并注册 displayMyModule
挂钩 :
在/override/modules/blocknewproducts/blocknewproducts.php:
if (!defined('_PS_VERSION_'))
exit;
class BlockNewProductsOverride extends BlockNewProducts
{
public function install()
{
$success = (parent::install()
&& $this->registerHook('displayMyModule'));
return $success;
}
public function hookDisplayMyModule($params)
{
return $this->hookRightColumn($params);
}
}
在hookDisplayMyModule
中我们只是return hookRightColumn 方法不重写代码。
不要忘记进入 back-office/modules 并重新初始化 blocknewproducts 模块
仅此而已...但请记住,您也可以 覆盖 blocknewproducts 模块以注册 已经存在的钩子 如上所示。
TLDR: 如果您只是想在其他地方展示块状新产品,也许您不需要模块。
我有一个模块,我想显示其中的 "blocknewproducts"。什么是最佳选择?
谢谢!
好的,我们缺少更多信息,但我会在 Prestashop 1 中分享一种方法。6.x:
您的模块:
鉴于您在模块 install 方法中有一个名为 displayMyModule 的自定义挂钩:
public function install() {
if (!parent::install() || !$this->registerHook('displayMyModule')) {
return false;
} else {
return true;
}
}
现在,您要在何处显示此挂钩的内容由您决定。例如,如果它位于类别页面上,则在 category.tpl 中添加
{hook::exec('displayMyModule')}
阻止新产品
现在要显示 blocknewproducts 我们将创建一个 override 这个核心模块并注册 displayMyModule
挂钩 :
在/override/modules/blocknewproducts/blocknewproducts.php:
if (!defined('_PS_VERSION_'))
exit;
class BlockNewProductsOverride extends BlockNewProducts
{
public function install()
{
$success = (parent::install()
&& $this->registerHook('displayMyModule'));
return $success;
}
public function hookDisplayMyModule($params)
{
return $this->hookRightColumn($params);
}
}
在hookDisplayMyModule
中我们只是return hookRightColumn 方法不重写代码。
不要忘记进入 back-office/modules 并重新初始化 blocknewproducts 模块
仅此而已...但请记住,您也可以 覆盖 blocknewproducts 模块以注册 已经存在的钩子 如上所示。
TLDR: 如果您只是想在其他地方展示块状新产品,也许您不需要模块。