是否可以在Prestashop中的项目列表中添加消息?

时间:2014-04-16 20:28:45

标签: hook block prestashop

我已经构建了我的模块,并创建了一个AdminController,用于创建/更新/删除/查看我的表中的项目。

在列表页面中,我想在面包屑之后但在表格之前添加消息。

我看到有一个可用的钩子:" displayAdminListBefore"以及一个扩展" override_header"的块,但我不知道如何让它工作!

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您只需将模块添加到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挂钩。

为此,请在list_header.tpl

中创建新文件modules/your_module/views/templates/admin/your_module/helpers/list/list_header.tpl

在此文件中复制以下代码:
{extends file="helpers/list/list_header.tpl"} {block name="override_header"} Your text {$your_var} {/block}

必须在函数$your_var中的控制器中定义

renderList()
$this->context->smarty->assign( array( 'your_var' => 'your_var_value' ) );