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

时间:2016-12-19 07:12:55

标签: 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');
  }
}

2 - gestionfournisseur/views/templates/front/display.tpl:满足我想要显示的视图。

Hello World!!

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

$this->name = 'gestionfournisseur';
$this->context->link->getModuleLink($this->name,'display')

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

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

array:1 [▼
  0 => "/my_hosts/manishop/themes/classic/templates/"
]

请你告诉我这是什么问题?

感谢&#39; S

3 个答案:

答案 0 :(得分:5)

您需要调用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}

答案 1 :(得分:2)

经过一段时间和一些帮助,我找到了解决方案。

  • 首先,你需要在她的回答中指出像@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 :(得分:0)

也许是这样的方式

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