假设我有两个categegories,A和B.
我将A设置为在目录上使用'layout_a' - >目录类别 - >点击类别 - >单击自定义设计选项卡
我将B设置为在目录上使用'layout_b' - >目录类别 - >点击类别 - >单击自定义设计选项卡
当我访问A类和B类时,他们使用我在管理面板上设置的布局来显示产品。当我单击产品列表页面上的项目时,产品视图页面不使用自定义设计。
如何强制使用产品视图页面来使用其类别的自定义设计?
答案 0 :(得分:6)
在当前版本的Magento中,还有另一种方法可以在不更改核心代码的情况下执行此操作。假设您有一个类别的产品显示的自定义模板。在管理员中,转到“目录” - >“类别” - >“管理类别”,然后选择要将修改后的产品模板应用到的类别。将“应用于产品”更改为“是”并将以下内容添加到“自定义布局更新”中;
<reference name="product.info">
<action method="setTemplate"> <template>catalog/product/NEW_VIEW.phtml</template></action>
</reference>
其中NEW_VIEW是您要使用的新模板的名称。如果您有子类别,则可能需要将“使用父类别设置”设置为“是”才能使其浮动。
答案 1 :(得分:4)
我自己找到了答案。
打开位于/app/code/Mage/Catalog/controllers/ProductController.php
将以下代码添加到_initProductLayout方法
$最新情况:&GT; addHandle( 'CATEGORY _' $产品 - &GT; getCategoryId());
打开目录布局xml位于/app/design/frontend/default/default/layout/catalog.xml
添加
<CATEGORY_"your category id"> <reference name="root"> <action method="setTemplate"><template>yourtemplate here</template></action> </reference> </CATEGORY_"your category id">
答案 2 :(得分:0)
您可以在产品目录&gt;管理产品&gt;设计上应用自定义设计更新,然后根据类别应用
这能达到你所需要的吗?
答案 3 :(得分:0)
使用下拉列表类型和名称属性代码'which_category'创建属性。在选项标签上填写'category_a'和'category_b'
在/ app / design / frontend / default / YOURTEMP / template / catalog / product /
中创建两个文件让我们说:view_cat_a.phtml和view_cat_b.phtml
您可以根据view.phtml设计特定类别的产品视图页。
将view.phtml更改为:
<?php
$_helper = $this->helper('catalog/output');
$_product = $this->getProduct();
if ( $_product->getAttributeText('which_category') == category_a) {
include('view_cat_a.phtml');
} else {
include('view_cat_b.phtml');
}
创建产品时,您可以选择属性上的类别(在attribute_set中定义)