Prestashop 1.7.1 - 注册一个新的钩子

时间:2017-11-19 10:56:09

标签: prestashop prestashop-1.7

我正在尝试在我的主题中显示一个顶部横幅(这不是默认的经典横幅)。

具体来说,我修改header.tpl以包含它(如在经典主题中):

{block name='header_banner'}
   <div class="header-banner">
     {hook h='displayBanner'}
   </div>
{/block}

但是displayBanner不会作为附加模块的有效钩子出现。 我是否必须在其他地方注册钩子?如果是这样,那将是代码?

这个问题进一步阐述了this one。 谢谢,

2 个答案:

答案 0 :(得分:1)

注册挂钩发生在模块install方法中。

您可以在模块中执行以下操作:

public function install()
{
    $installed = (parent::install() && $this->registerHook('displayBanner'));

    if ( $installed ) {
      return true;
    } else {
      $this->uninstall();

      return false;
    }
}

然后卸载并重新安装模块。

答案 1 :(得分:1)

您需要将新的钩子添加到theme.yml并在其上设置模块,然后将主题重置为默认设计 - &gt;主题&amp;徽标 - &gt;重置为默认值。 theme.yml 钩:     modules_to_hook:         displayBanner:            - your_module_name example 警告:重置后你的主题看起来就像是在theme.yml文件中设置的。如果您对管理面板中的主题外观进行了任何更改,并且未将其包含在theme.yml中,则会丢失。