![](/img/trans.png)
[英]How to Add Extra Tab Using Template Language Twig In OpenCart 3.x
[英]OpenCart 3.x - including a new template file
我需要将一个新的OpenCart模板文件添加到另一个模板文件中。
基本上我在/theme/customtheme/template/common/
创建了一个名为“header_home.twig”的新头文件。
然后在home.twig中,我已将{{header}}更改为{{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 }}
我想我在某种程度上错过了添加新模板文件的一步? 如果有人可以帮我添加一个新的twig文件,那就太棒了。
你可以:
即:
{{ 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正式接受它是很好的。 但现在它只是Twig 1.24.2。 请参阅Twig文档 。
我还没有学习OpenCart 3.x,但我想你需要改变
return $this->load->view('common/header', $data);
至
return $this->load->view('common/header_home', $data);
在catalog/controller/common/header.php
。
要通过{{header_home}}构造连接另一个模板,需要在文件夹/controller/common/directory
中创建header_home.php,在主题/*theme_name*/template/common/
创建header_home.twig文件/*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)); '
@bogalakon的答案是正确的,但是如果你更新你的OpenCart核心文件你会丢失你的更改所以,我建议你复制header.php
控制器文件并将其重命名为header_home.php
然后编辑文件并替换该行
return $this->load->view('common/header', $data);
有:
return $this->load->view('common/header_home', $data);
有几种方法可以提供不同的价值。
例如:
考虑控制器
$data['header'] = $this-> load-> controller ('common / header');
模板中提供了变量{{header}}
您可以将新模板放在另一个文件( header_home.twig )中,然后您可以立即下载新模板以供使用:
$data['**header**'] = $this-> load-> controller ('common / ***header_home***');
如果您想在模板中使用{{ header }}。
要么,
$data['**header_home**'] = $this-> load-> controller ('common / header_home');
在模板中使用{{ header_home }}。
要添加自己的自定义twig文件并将其包含在另一个现有文件中,您需要做三件事:
catalog/view/theme/customtheme/template/common/header_home.twig
/catalog/controller/common/header.php
并将其重命名为header_home.php
。 编辑此控制器并通常在第2行将类名更改为ControllerCommonHeaderHome
。 home.twig
包含header_home
,编辑/catalog/controller/common/home.php
并添加行$data['header'] = $this->load->controller('common/header_home');
在$data['header'] = $this->load->controller('common/header');
而已。 完成上述步骤后,您现在可以在home.twig
包含{{ header_home }}
。 如果您直接编辑文件,我发现有时我需要登录网站的管理员,转到设计>主题编辑器,打开我添加或更改的文件,点击重置,然后保存。 刷新您的网站,您应该看到更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.