我对opencart很新,但我认为这是一个简单而且最好的解决方案。虽然玩模板不是一种乐趣......
我正在努力创建一些额外的模板页面。例如,我有两种类型的产品和类别页面。我想为不同的产品使用不同的模板。在opencart中,您只有一种产品布局。
我想做的是复制产品布局。我在网上得到了一些帮助,但我仍然不确定还需要什么。这就是我到目前为止所做的......
1 - 复制目录/ controller / product / product.php的控制器文件,并更改为catalog / controller / product / product-2.php。然后我在控制器中更改了这个:
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product-2.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/product-2.tpl';
} else {
$this->template = 'default/template/product/product-2.tpl';
}
2 - 然后我复制了产品语言文件并另存为product-2
3 - 之后我复制了实际的tpl文件并保存为product-2
看起来很好,但是如果我尝试对product-2.tpl进行一些更改,则没有任何变化。我是否需要复制更多文件才能完成它?
答案 0 :(得分:1)
经过搜索和大量的研究和令人难以置信的事情,我找到了一个非常有用的方法来做我想做的事情。通过这种方式,我可以完全控制opencart主题系统。我可以制作尽可能多的不同布局。我不必使用VQmod既不需要制作任何控制器,但你必须使用现有的控制器,如产品,类别等,如果你正在制作自己的控制器,即使它工作。
以下是为不同类别,产品和常用页面实现不同模板的步骤。
我在这里做产品的例子。 1-在主题的产品文件夹中创建产品的自定义模板。例如customproduct.tpl 2-现在可以根据需要自定义它。创建一个产品并获取它的ID。 id在这里非常重要。 3-转到控制器目录/ controller / product / product.php 4-找到这个代码
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/customproduct.tpl';
} else {
$this->template = 'default/template/product/product.tpl';
}
5-现在你必须使用简单的if else条件。例如
//42 is the id of the product
if($this->request->get['product_id'] == 42){
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/customproduct.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/customproduct.tpl';
} else {
$this->template = 'default/template/product/customproduct.tpl';
}
}
else{
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/product.tpl';
} else {
$this->template = 'default/template/product/customproduct.tpl';
}
}
这是它的工作完成;) 你可以为其他控制器做同样的事情。
答案 1 :(得分:0)
正如你在这里看到的那样;
http://pranshuarya.com/jaal/Development/opencart-creating-a-new-viewtemplate.html
这是“全新布局”请求的真正解决方案的第二个选项。 两者都可以使用。如果您不需要新的控制器例程,那么您的解决方案可以节省时间。但这种方式更灵活。
以下是步骤;
将新控制器文件添加到/ catalog / controller。调用类似new_layout.php的东西...如果已有类似的控制器则复制。请务必按照我在下面的评论中所说的更改控制器名称。
在您的主题文件夹中添加一个新的视图文件...如果您希望可以复制一个类似的视图文件内容并根据需要进行修改,可以使用控制器。
从管理面板系统/设计/布局或直接从MYSQL表添加新布局,如上面的链接所述。
现在好了。只需在此布局视图中添加一些模块即可享受。