Я создал модуль под названием gestionfournisseur. Мне нужно изменить часть представления внешнего интерфейса в этом модуле. Для этого я создал два файла:
1 — gestionfournisseur/controllers/front/display.php
: этот файл содержит мою контроллерную логику и наследует ModuleFrontController
<?php
class gestionfournisseurdisplayModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$this->setTemplate('display.tpl');
}
}
2 — gestionfournisseur/views/templates/front/display.tpl
: содержимое представления, которое я хочу отобразить.
Hello World!!
Я сгенерировал ссылку на эту страницу со следующей инструкцией в основном файле моего модуля:
$this->name = 'gestionfournisseur';
$this->context->link->getModuleLink($this->name,'display')
Но prestashop возвращает мне большое исключение: шаблон для display.tpl не найден
Если это не поможет, содержимое моей переменной $ this-> context-> smarty-> getTemplateDir () будет выглядеть так:
array:1 [▼
0 => "/my_hosts/manishop/themes/classic/templates/"]
Пожалуйста, не могли бы вы сказать мне, в чем проблемы?
Спасибо
Вам нужно вызвать функцию setTemplate (), как показано ниже:
class SupercheckoutFcontModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');
}
}
Файл order_detail.tpl должен содержать следующий код:
{extends file=$layout}
{block name='content'}
YOUR_HTML_CONTENT_HERE
{/block}
Через несколько раз и некоторые подсказки я нашел решение.
Во-первых, вам нужно указать свой шаблон как @ventura show в ее ответе:
$this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');
Во-вторых, чтобы включить ваш шаблон в макет страницы, вам нужно extend
page
шаблон как это:
{extends file='page.tpl'}
{block name="page_content"}
"trigger"{/block}
Может быть, так
$this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');