2017-08-07 14 views
1

申し訳ありませんが、これは愚かな基本的な質問(と申し訳ありませんが、もしstackoverflowに行くことはないが、opencartフォーラムは役に立たないようです)..しかし、新しいopencartテンプレートファイルを別のテンプレートファイルに追加するのに役立ちます。Opencart 3.x - 新しいテンプレートファイルを含む

私は基本的に/ headtype/customtheme/template/common /に "head_home.twig"という新しいヘッドファイルを作成しました。

次にhome.twigに、私は{{ヘッダが}}{{}} header_homeを言うために変更しましたが、それは何も表示されていません。

基本的に、私がしたすべてはコピーheader.twigだったとheader_home.twigに名前を変更し、それはそれはない新しいファイルを、呼んでいたかどうかを確認するために、「XXXXX」に入れます。代わりに、何も表示されません。私はそれが新しいテンプレートファイルを追加することに来るとき、私は何とかステップを欠けていると仮定し

{{ header_home }} 
<div id="common-home" class="container"> 
    <div class="row">{{ column_left }} 
    {% if column_left and column_right %} 
    {% set class = 'col-sm-6' %} 
    {% elseif column_left or column_right %} 
    {% set class = 'col-sm-9' %} 
    {% else %} 
    {% set class = 'col-sm-12' %} 
    {% endif %} 
    <div id="content" class="{{ class }}">{{ content_top }}{{ content_bottom }}</div> 
    {{ column_right }}</div> 
</div> 
{{ footer }} 

は、ここに私のhome.twigが今のように見える何ですか?誰かが新しい小枝ファイルを追加するのを助けることができたら、それは素晴らしいだろう。

+1

他のテンプレートを含める。コードを再利用するためのより多くの方法が見つかりました[ここ](https://stackoverflow.com/questions/40526990/difference-between-include-extends-use-macro-embed-in-twig) – DarkBee

+0

ありがとうございました! –

答えて

1

私はOpencart 3.xのを学ぶいないが、私はあなたが

カタログ/コントローラ/共通/ header.phpの中

return $this->load->view('common/header_home', $data);

return $this->load->view('common/header', $data);

を変更する必要があると思います。

3

次のいずれかが可能です。@bogalakonが指摘したように

  • 変更コントローラ/共通/ヘッダー内opencartレベルでの小枝のレンダリングテンプレートの名前は、(好ましくはocmod経由でこれを行うには、更新opencartあなたの未来がないように、
  • )あなたのハックを上書きするか、別のテンプレートが含まれ小枝レベルに

すなわち:

{{ header }} {# original rendered to html opencart header - you can move it to your header_home.twig or just drop it #} 
{% include customtheme/template/common/header_home.twig %} 
<div id="common-home" class="container"> 
... 

twigは非常に強力なテンプレート言語です。そしてあなたは単なるインクルード以上のことができます!それはopencartが正式にそれを受け入れたことはいいことです。しかし今のところそれはちょうど枝1.24.2です。 twig docsを参照してください。

0

{{header_home}}構造で別のテンプレートを接続するには、/controller/common/directoryフォルダにheader_home.phpを作成し、header_homeを作成する必要があります。前

'$ data [' header_home '] = $ this-> load-> controller (' common/header_home '); ' 

'$ this-> response-> setOutput ($ this-> load-> view (' common/home ', $ data)); ' 
ディレクトリ内で例えばテーマ /*theme_name*/template/common/フォルダ内に、ページの形成に責任があるコントローラ、中小枝ファイル、 /controller/common/home.php

は、行を追加します。

0

@bogalakonの答えは正しいですが、開いているカートのコアファイルを更新すると、変更内容が失われるので、header.phpコントローラファイルをコピーしてheader_home.phpに名前を変更してファイルを編集して置き換えてくださいこの線

return $this->load->view('common/header', $data); 

:あなたが欲しい時に[含める](https://twig.symfony.com/doc/2.x/tags/include.html)関数を使用する必要が

return $this->load->view('common/header_home', $data); 
関連する問題