我想将社交媒体关注和其他一些Prestashop模块连接到displayMaintenance钩子上,但出现错误:
ContextErrorException in Module.php line 2221:
Notice: Trying to get property of non-object
根据此documentation,此挂钩在维护页面上显示新元素。
我还注意到,当我尝试在maintenance.tpl文件中使用包含{$ urls}(例如{$ urls.theme_assets}和{$ urls.base_url})的全局变量时,也会出现相同的错误,主题目录。看起来那些模块和变量在maintenance.tpl文件中不起作用。
更新: 这是来自包含钩子的maintenance.tpl文件中的代码的一部分。
div class="maintenance-container">
<div class="page-header">
{block name='page_header_logo'}
<div class="logo"><img src="{$shop.logo}" alt="logo" width="160"></div>
{/block}
{block name='hook_maintenance'}
{$HOOK_MAINTENANCE nofilter}
{/block}
{block name='page_header'}
<h1>{block name='page_title'}{l s='We will be back soon' d='Shop.Theme.Global'}{/block}</h1>
{/block}
</div>
{block name='page_content_container'}
<section id="content" class="page-content page-maintenance">
{block name='page_content'}
{$maintenance_text nofilter}
{/block}
</section>
{/block}
</div>
以下代码用于将模块直接添加到该位置:
$this->registerHook('displayMaintenance'));
但是,我也成功地将模块移植到了后端的这个位置。但是当您检查前端时,它将引发错误。