1

gestionfournisseur という名前のモジュールを作成しました。このモジュールのフロントエンド ビューの一部を変更する必要があります。このために、2 つのファイルを作成しました。

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: content 表示したいビュー。

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');

  • extend次に、テンプレートをレイアウト ページに含めるには、次のようにテンプレートを作成する必要がありますpage

    {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 に答える