2016-12-19 14 views
0

Я создал модуль с именем gestionfournisseur. Мне нужно изменить часть внешнего вида интерфейса в этом модуле. Для этого я создал два файла:Prestashop 1.7 не вижу мой файл шаблона в модуле

1 - gestionfournisseur/controllers/front/display.php: этот файл контента мой контроллер логики и HERIT 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/" 
] 

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

Thank в

+0

убедитесь, что у вас есть правильный путь к файлу шаблона – madalinivascu

+0

PrestaShop automaticaly найти файл шаблона. Я никого не определяю. Согласно официальной документации, файлы шаблонов моего модуля должны быть в этих трех папках: 'views/templates/front; views/templates/admin; просмотров/шаблоны/hook'. –

+0

Почему вы не используете 'display()'? – madalinivascu

ответ

0

Может ИНТ этот путь

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

Это работает частично, потому что не отображает мою макет шаблона. Вы знаете, почему? –

2

Через некоторое время и некоторые помогает, я нашел решение.

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

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

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

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

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