Как использовать createTemplate в AdminCustomersController в Prestashop 1.6 - PullRequest
0 голосов
/ 26 апреля 2018

Я создаю пользовательский модуль, в котором хочу добавить новую опцию в список клиентов.По умолчанию пользователь может использовать параметры: просматривать, редактировать или удалять.Я хочу добавить опцию проверки.Для этого теста я изменяю основной контроллер AdminCustomersControllerCore без переопределения.

In \ 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, который находится в модулях \ my_module\ Views \ шаблоны \ админ \ 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 / admin / list_action_erase.tpl

Как загрузить представление из другого места?

С уважением

1 Ответ

0 голосов
/ 28 апреля 2018

вместо

$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(), вы можете указать абсолютный путь к вашему шаблону.

...