Opencart为类别添加额外的tpl布局

时间:2012-11-29 23:24:07

标签: opencart

我正在尝试在Opencart 1.5.4中设置其他页面和类别布局。

我已进入一个阶段,如果我将新类别的路线输入地址栏,新模板会显示我想要的,但我似乎无法在OC中注册该路线更改。< / p>

如果我在.htaccess文件中指定了更改,则新模板会按预期加载,但我不是这个问题的正确答案(尽管它有效)。

除了.htaccess(我确定不正确的方法)

RewriteRule ^skis$ index.php?route=product/categories&path=1  [L,QSA]

我创建了两个新文件

/catalog/view/theme/default/template/product/categories.tpl
/catalog/controller/product/categories.php

在/catalog/controller/product/categories.php中,我更改了内容以反映新的tpl文件;

class Controllerproductcategories extends Controller {

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categories.tpl')) {
 $this->template = $this->config->get('config_template') . '/template/product/categories.tpl';
} else {
 $this->template = 'default/template/product/categories.tpl';
}

总结

  1. 如果我在.htaccess文件中指定重写,那么布局会加载,如果我不加载,则会加载。
  2. 我在OC中添加了一个新布局,并根据类别enter image description here enter image description here
  3. 选择了它

    任何人都有任何想法我可能会尝试使其正常工作?我有大量的模板可以为产品,类别和信息页面创建,所以我们想要正确地做到这一点。

    提前Tx

    斯图

2 个答案:

答案 0 :(得分:5)

我最终选择了这种方法..可能会帮助别人。

if ($this->data['heading_title'] == "Skis") {

    $this->template = $this->config->get('config_template') . '/template/product/categories.tpl';

} elseif ($this->data['heading_title'] == "Softgoods") {

    $this->template = $this->config->get('config_template') . '/template/product/category.tpl';

} elseif ($this->data['heading_title'] == "Outlet Store") {

    $this->template = $this->config->get('config_template') . '/template/product/category.tpl';

} else {

    $this->template = $this->config->get('config_template') . '/template/product/category.tpl';

}

答案 1 :(得分:2)

从我所看到的,你正在尝试对每个单独的模板进行硬编码,而这并不是按照你选择的方式使用该类别的布局。布局旨在在页面上排列内容而不是指定模板

我实际上创建了一个商业版本,您可以找到here。它允许您创建模板并将其分配给一个或多个页面。它适用于产品,类别,制造商和信息页面。它还允许您为整个类别或制造商指定产品的模板