Prestashop 1.7 не видит мой файл шаблона в модуле

Я создал модуль под названием 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/"]

Пожалуйста, не могли бы вы сказать мне, в чем проблемы?

Спасибо

1

Решение

Вам нужно вызвать функцию 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}
5

Другие решения

Через несколько раз и некоторые подсказки я нашел решение.

  • Во-первых, вам нужно указать свой шаблон как @ventura show в ее ответе:

    $this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');

  • Во-вторых, чтобы включить ваш шаблон в макет страницы, вам нужно extend page шаблон как это:

    {extends file='page.tpl'}
    
    {block name="page_content"}
    "trigger"{/block}
    
2

Может быть, так

  $this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');
0
По вопросам рекламы [email protected]