1

我创建了一个名为 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/"
]

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

谢谢

4

3 回答 3

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}
于 2016-12-21T10:39:02.077 回答
2

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

  • 首先,您需要在她的回答中指出您的模板,例如@ventura show:

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

  • 其次,要将模板包含在布局页面中,您需要这样extendpage模板:

    {extends file='page.tpl'}
    
    {block name="page_content"}
      "trigger"
    {/block}
    
于 2016-12-19T08:35:13.723 回答
0

也许这样

  $this->setTemplate('module:supercheckout/views/templates/front/order_detail.tpl');
于 2016-12-19T08:06:19.427 回答