我已经构建了我的模块,并制作了一个AdminController,它可以通过创建/更新/删除/查看来列出表中的项目。
在列表页面中,我想在breadcrumb之后,但在表之前添加一条消息。
我看到有一个钩子可用:"displayAdminListBefore"和一个扩展"override_header"的块,但我不知道如何使其工作!
有人能给我指正确的方向吗?
您可以简单地将模块添加到displayAdminListBefore
挂钩中。
首先使用安装功能将模块挂到此挂钩:public function install()
{
if (!parent::install() || !$this->registerHook('displayAdminListBefore'))
return false;
return true;
}
然后创建钩子函数,如下所示:public function hookDisplayAdminListBefore($params)
{
return '
<div class="bootstrap">
<div class="alert alert-success">
<button data-dismiss="alert" class="close" type="button">×</button>
Add your text here
</div>
</div>
';
}
或者,您也可以使用.tpl:
public function hookDisplayAdminListBefore($params)
{
$this->smarty->assign(array(
'first_var' => $first_var,
'second_var' => $second_var',
));
return $this->display(__FILE__, 'views/templates/admin/listbefore.tpl');
}
对您来说,最好的方法是覆盖list_header.tpl
并使用override_header
挂钩。
为此,请在modules/your_module/views/templates/admin/your_module/helpers/list/list_header.tpl
中创建一个新文件list_header.tpl
在此文件中复制以下代码:{extends file="helpers/list/list_header.tpl"}
{block name="override_header"}
Your text
{$your_var}
{/block}
必须在控制器中的函数renderList()
:
中定义$your_var
$this->context->smarty->assign(
array(
'your_var' => 'your_var_value'
)
);