如何在Prestashop 1.6中的AdminCustomersController中使用createTemplate

时间:2018-04-26 08:21:28

标签: prestashop

我创建了一个自定义模块,我想在其中添加新选项到客户端列表。默认情况下,用户可以使用选项:查看,编辑或删除。我想添加检查选项。对于此测试,我修改了主控制器AdminCustomersControllerCore而没有覆盖。

在\ controllers \ admin \ AdminCustomersController.php

public function displayEraseLink($token = null, $id, $name = null) {
        $tpl = $this->createTemplate(_PS_MODULE_DIR_ . $this->module->name.'/views/templates/admin/list_action_erase.tpl');
        $tpl->assign(array(
            'confirm' => $this->l('Erase all client data') . $name,
            'action' => $this->l('Erase'),
            'id' => $id,
        ));
        return $tpl->fetch();
    }

我想加载list_action_erase.tpl,它位于modules \ my_module \ views \ templates \ admin \ list_action_erase.tpl中的位置。在服务器日志中,我看到:

无法加载模板文件'/home/user/domains/domain.com/public_html/admin3640wjafn/themes/default/template//home/user/domains/domain.com/public_html/modules//views/templates/管理/ list_action_erase.tpl

如何从其他位置加载视图?

亲切的问候

1 个答案:

答案 0 :(得分:0)

而不是

$tpl = $this->createTemplate(_PS_MODULE_DIR_ . $this->module->name.'/views/templates/admin/list_action_erase.tpl');

使用

$tpl = $this->context->smarty->createTemplate(_PS_MODULE_DIR_ . $this->module->name.'/views/templates/admin/list_action_erase.tpl');

$this->createTemplate()$this->context->smarty->createTemplate()AdminController的包装器,它会查找相对于文件夹/adminfolder/themes/default/template/的模板。

使用$this->context->smarty->createTemplate()本身,您可以指定模板的绝对路径。