Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prestashop 1.7.1-注册新挂钩_Prestashop_Prestashop 1.7 - Fatal编程技术网

Prestashop 1.7.1-注册新挂钩

Prestashop 1.7.1-注册新挂钩,prestashop,prestashop-1.7,Prestashop,Prestashop 1.7,我试图在我的主题中显示一个顶部横幅(这不是默认的经典横幅) 具体地说,我修改header.tpl以包括以下内容(如在经典主题中): {block name='header\u banner'} {hook h='displayBanner'} {/block} 但是displayBanner并没有显示为将模块附加到其上的有效钩子。 我必须在别的地方登记钩子吗?如果是,代码是什么 这个问题进一步阐述。 谢谢,在模块安装方法中注册挂钩 例如,您可以在模块中执行以下操作: public functi

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

具体地说,我修改header.tpl以包括以下内容(如在经典主题中):

{block name='header\u banner'}
{hook h='displayBanner'}
{/block}
但是displayBanner并没有显示为将模块附加到其上的有效钩子。 我必须在别的地方登记钩子吗?如果是,代码是什么

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

在模块
安装方法中注册挂钩

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

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

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

      return false;
    }
}

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

您需要将新挂钩添加到theme.yml中,并在其上设置模块,然后将主题重置为默认设计->主题和徽标->重置为默认设置。 theme.yml 挂钩: 模块\u至\u挂钩: 显示横幅: -您的\u模块\u名称 警告:重置主题后,它看起来像是在theme.yml文件中设置的。如果您在管理面板中对主题外观做了任何更改,但没有将其包含在theme.yml中,则它们将丢失

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

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

      return false;
    }
}