我正在尝试在我的主题中显示一个顶部横幅(这不是默认的经典横幅)。
具体来说,我修改header.tpl以包含它(如在经典主题中):
{block name='header_banner'}
<div class="header-banner">
{hook h='displayBanner'}
</div>
{/block}
但是displayBanner不会作为附加模块的有效钩子出现。 我是否必须在其他地方注册钩子?如果是这样,那将是代码?
这个问题进一步阐述了this one。 谢谢,
答案 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中,则会丢失。