如何在产品视图页面中显示类别自定义设计布局?

时间:2010-09-08 12:25:20

标签: layout magento

假设我有两个categegories,A和B.

我将A设置为在目录上使用'layout_a' - >目录类别 - >点击类别 - >单击自定义设计选项卡

我将B设置为在目录上使用'layout_b' - >目录类别 - >点击类别 - >单击自定义设计选项卡

当我访问A类和B类时,他们使用我在管理面板上设置的布局来显示产品。当我单击产品列表页面上的项目时,产品视图页面不使用自定义设计。

如何强制使用产品视图页面来使用其类别的自定义设计?

4 个答案:

答案 0 :(得分:6)

在当前版本的Magento中,还有另一种方法可以在不更改核心代码的情况下执行此操作。假设您有一个类别的产品显示的自定义模板。在管理员中,转到“目录” - >“类别” - >“管理类别”,然后选择要将修改后的产品模板应用到的类别。将“应用于产品”更改为“是”并将以下内容添加到“自定义布局更新”中;

<reference name="product.info">
  <action method="setTemplate"> <template>catalog/product/NEW_VIEW.phtml</template></action>
</reference>

其中NEW_VIEW是您要使用的新模板的名称。如果您有子类别,则可能需要将“使用父类别设置”设置为“是”才能使其浮动。

答案 1 :(得分:4)

我自己找到了答案。

  1. 打开位于/app/code/Mage/Catalog/controllers/ProductController.php

  2. 的产品控制器
  3. 以下代码添加到_initProductLayout方法

    $最新情况:&GT; addHandle( 'CATEGORY _' $产品 - &GT; getCategoryId());

  4. 打开目录布局xml位于/app/design/frontend/default/default/layout/catalog.xml

  5. 添加

  6. <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中定义)