2010-09-08 42 views
2

比方说,我有两个categegories,A和B.如何在产品视图页面中显示分类定制设计布局?

我设定一个使用“layout_a”上目录 - >目录分类 - >点击一个类别 - >点击定制设计标签

我设置B到使用目录中的'layout_b' - >目录类别 - >单击一个类别 - >单击自定义设计选项卡

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

如何执行产品视图页以使用其类别的自定义设计?

+1

想你的意思:“我集B使用“layout_b 'on ...“:) :) – 2010-09-08 12:55:05

回答

4

我自己找到了答案。位于/app/code/Mage/Catalog/controllers/ProductController.php

    1. 打开产物控制器添加以下代码_initProductLayout方法

      $最新情况:> addHandle( '类别_' $产品 - > getCategoryId());位于/app/design/frontend/default/default/layout/catalog.xml

    2. 打开目录布局XML添加

    <CATEGORY_"your category id"> 
        <reference name="root"> 
        <action method="setTemplate"><template>yourtemplate here</template></action> 
        </reference> 
    </CATEGORY_"your category id"> 
    
  • 0

    您可以在产品目录应用定制设计更新>管理产品>设计,然后应用按类别

    这是否达到你所需要的?

    +1

    差不多,但不完美。我只想按照类别应用自定义设计。如果我在产品目录 - >管理产品 - >设计上设置了自定义设计,产品将使用我设置的布局。假设我的产品属于类别A和B.如果我为产品设置了布局B,那么当客户点击类别 - >产品时,如何使其使用布局A? – Moon 2010-09-08 13:00:43

    6

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

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

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

    0

    使用下拉类型和名称属性代码'which_category'创建一个属性。在选项选项卡填写 'category_a' 和 'category_b'

    创建两个文件在/ app /设计/前端/默认/ YOURTEMP /模板/目录/产品/

    让说: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定义它们)

    相关问题