Opencart的3.x中 - 包括一个新的模板文件

问题描述 投票:2回答:6

我需要一个新的Opencart的模板文件添加到另一个模板文件。

基本上我已经创建了一个/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 }}

我想我莫名其妙地失踪了一步,当谈到加入新的模板文件?如果有人可以帮助我在一个新的树枝文件中添加,那将是非常美妙的。

twig opencart opencart-3
6个回答
2
投票

我没有学Opencart的3.x的,但我想你需要改变

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

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

catalog/controller/common/header.php


6
投票

您可以:

  • 变化对控制器/通用/头的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的正式接受它。但现在它只是树枝1.24.2。请参阅Twig documentation


2
投票

为了通过连接另一个模板{{header_home}}构建,您需要创建该文件夹/controller/common/directory的header_home.php,请在主题/*theme_name*/template/common/文件夹,并在控制器中header_home.twig文件,它是负责组建页面,例如在目录/controller/common/home.php

添加一行:

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

之前:

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

1
投票

@bogalakon的答案是正确的,但如果你更新你的Opencart的核心文件,你会失去你的变化的话,我建议你复制的header.php控制器文件重命名为header_home.php,然后编辑该文件,并替换线

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

有:

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

1
投票

有几种方法给不同的值。

例如:

考虑控制器

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

一种可变{{标题}}是在模板可用

你可以放在其他文件(header_home.twig)一个新的模板,然后就可以马上下载使用一个新的模板:

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

如果你想在模板中使用{{标题}}。

要么,

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

对于在模板中使用{{header_home}}。


1
投票

要添加自己的自定义树枝文件,包括它里面另一个现有一个你需要做三件事情:

  1. 创建自定义的实际树枝文件。你的情况将是:catalog/view/theme/customtheme/template/common/header_home.twig
  2. 创建该文件的树枝控制器。你的情况,你可以复制:/catalog/controller/common/header.php和重命名,为header_home.php。编辑本控制器和更改类名通常ControllerCommonHeaderHome第2行。
  3. 最后,因为你要包括内部header_home home.twig,编辑/catalog/controller/common/home.php$data['header'] = $this->load->controller('common/header_home');之后加入该行$data['header'] = $this->load->controller('common/header');

而已。你做了上述步骤后,您现在可以{{ header_home }}home.twig。如果直接编辑文件,我发现,有时候我需要登录到该网站的管理员,去设计>主题编辑器,打开我添加或更改文件,打复位,并保存。刷新你的网站,你应该看到的变化。

© www.soinside.com 2019 - 2024. All rights reserved.