Установить шаблон из контроллера переопределения с помощью Prestashop 1.7
Я переопределил контроллер в Prestashop 1.7 следующим образом:
/override/controllers/front/MyAccountController.php
class MyAccountController extends MyAccountControllerCore
{
/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent()
{
$this->context->smarty->assign([
'logout_url' => $this->context->link->getPageLink('index', true, null, 'mylogout')
]);
parent::initContent();
$this->setTemplate("module:configurateur/views/templates/front/my-account.tpl");
}
}
Поэтому я пытаюсь вызвать представление в моем пользовательском модуле "configurateur" с помощью этой строки:
$this->setTemplate("module:configurateur/views/templates/front/my-account.tpl");
Этот файл существует и находится в правильной папке (я думаю):
\ модули \ configurateur \ вид \ Шаблоны \ фронт \ My-account.tpl
Когда я пытаюсь загрузить страницу, у меня появляется эта ошибка:
Шаблон для модуля не найден :configurateur/views/templates/front/my-account.tpl в строке 68 в файлах классов /Smarty/TemplateFinder.php
Может кто-нибудь сказать мне, что не так, пожалуйста?
1 ответ
Синтаксис "module:..." предназначен только для объектов ModuleFrontController, но не для FrontController:
В вашем случае вы должны использовать хук DisplayOverrideTemplate или перенаправить страницу myaccount на контроллер модуля.