2017-08-07 51 views
1

對不起,如果這是一個愚蠢的基本問題,(也抱歉,如果它不應該在stackoverflow上,但opencart論壇似乎是無用的)..但我需要一些幫助將新的opencart模板文件添加到另一個模板文件中。Opencart 3.x - 包括一個新的模板文件

本質上,我在/ theme/customtheme/template/common /中創建了一個新的頭文件,名爲「header_home.twig」。

然後在home.twig,我已經改變了{{標題}}{{header_home}},但它沒有顯示任何內容。

基本上,我所做的就是複製header.twig,重命名爲header_home.twig,並提出在「XXXXX」,看它是否在呼喚新的文件,它不是。相反,它不顯示任何東西。

這裏就是我的home.twig現在看起來像:

{{ 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 }} 

我想我莫名其妙地失蹤了一步,當談到加入新的模板文件?如果有人能夠幫助我添加一個新的樹枝文件,這將是太棒了。

+1

您需要使用,當你想要的[包括(https://twig.symfony.com/doc/2.x/tags/include.html)功能包括其他模板。更多重用代碼的方法可以在這裏找到(https://stackoverflow.com/questions/40526990/difference-between-include-extends-use-macro-embed-in-twig) – DarkBee

+0

非常感謝! –

回答

1

我還沒有學會Opencart的3.x的,但我想你需要改變

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

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

在目錄

/控制器/通用/ header.php文件。

3

您可以:

  • 變化樹枝呈現模板對控制器/通用/頭Opencart的級別名稱作爲@bogalakon指出的(最好是通過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"> 
... 

嫩枝是非常強大的模板語言。你可以做的不僅僅是簡單的包括! opencart正式接受它是很好的。但現在它只是Twig 1.24.2。請參閱twig docs

0

爲了通過{{header_home}}構造連接另一個模板,您需要在文件夾/controller/common/directory中創建header_home.php,創建header_home。在目錄中的主題/*theme_name*/template/common/文件夾,並在控制器,它負責在網頁的形成枝杈文件,例如/controller/common/home.php

添加一行:

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

之前:

'$ this-> response-> setOutput ($ this-> load-> view (' common/home ', $ data)); ' 
0

@bogalakon的答案是正確的,但是如果你更新你的開放式購物車核心文件,你將失去你的改變,所以我建議你複製header.php控制器文件並將其重命名爲header_home.php,然後編輯文件並替換該線

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

有:

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