4

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

我已经到了一个阶段,如果我在地址栏中输入新类别的路线,新模板会按我的意愿显示,但我似乎无法在 OC 中注册该路线更改。

如果我在 .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 中添加了一个新布局,并根据类别选择了它在此处输入图像描述在此处输入图像描述

有人有任何想法我可能会尝试使其正常工作吗?我有大量模板要为产品、类别和信息页面创建,因此希望正确执行此操作。

提前发送

斯图

4

2 回答 2

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';

}
于 2012-11-30T10:10:10.097 回答
2

据我所知,您正在尝试对每个单独的模板进行硬编码,并且它并不能真正按照您为类别使用布局选择的方式工作。布局旨在安排页面上的内容,而不是指定模板

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

于 2012-11-30T00:24:40.520 回答