Prestashop 1.7在模块中看不到我的模板文件

neo*_*o m 1 php templates module prestashop prestashop-1.7

我创建了一个名为gestionfournisseur的模块.我需要修改此模块中前端视图的某些部分.为此,我创建了两个文件:

1 - gestionfournisseur/controllers/front/display.php:这个文件内容我的控制器逻辑和herit ModuleFrontController

<?php
class gestionfournisseurdisplayModuleFrontController extends ModuleFrontController
{
  public function initContent()
  {
    parent::initContent();
    $this->setTemplate('display.tpl');
  }
}
Run Code Online (Sandbox Code Playgroud)

2 - gestionfournisseur/views/templates/front/display.tpl:对我想要显示的视图进行内容.

Hello World!!
Run Code Online (Sandbox Code Playgroud)

我使用模块主文件中的以下指令生成了此页面的链接:

$this->name = 'gestionfournisseur';
$this->context->link->getModuleLink($this->name,'display')
Run Code Online (Sandbox Code Playgroud)

但是,prestashop给我一个很大的例外:找不到display.tpl的模板

如果它无法帮助你,我的变量$ this-> context-> smarty-> getTemplateDir()的内容如下所示:

array:1 [?
  0 => "/my_hosts/manishop/themes/classic/templates/"
]
Run Code Online (Sandbox Code Playgroud)

请你能不能告诉我有什么问题?

谢谢

小智 5

你需要调用setTemplate()函数,如下所示:

class SupercheckoutFcontModuleFrontController extends ModuleFrontController
{

public function initContent()
{
        parent::initContent();
                $this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');
}

}
Run Code Online (Sandbox Code Playgroud)

order_detail.tpl文件应包含以下代码:

{extends file=$layout}
{block name='content'}
    YOUR_HTML_CONTENT_HERE
{/block}
Run Code Online (Sandbox Code Playgroud)