如何在opencart中复制产品模板

时间:2012-05-30 14:06:38

标签: opencart

我对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进行一些更改,则没有任何变化。我是否需要复制更多文件才能完成它?

2 个答案:

答案 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表添加新布局,如上面的链接所述。

  • 现在好了。只需在此布局视图中添加一些模块即可享受。