【问题标题】:How to display category custom design layout in product view page?如何在产品视图页面中显示类别自定义设计布局?
【发布时间】:2011-04-09 17:19:15
【问题描述】:

假设我有两个类别,A 和 B。

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

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

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

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

【问题讨论】:

  • 认为您的意思是“我将 B 设置为在 ... 上使用 'layout_b'”:)

标签: layout magento


【解决方案1】:

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

这能满足你的需要吗?

【讨论】:

  • 差不多,但不完美。我只想根据类别应用自定义设计。如果我在产品目录->管理产品->设计上设置自定义设计,产品将使用我设置的布局。假设我有一个产品属于A类和B类。如果我为产品设置了布局B,当客户点击类别->产品时,如何让它使用布局A?
【解决方案2】:

我自己找到了答案。

  1. 打开产品控制器位于 /app/code/Mage/Catalog/controllers/ProductController.php

  2. 添加以下代码到_initProductLayout方法中

    $update->addHandle('CATEGORY_'.$product->getCategoryId());

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

  4. 添加

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      使用下拉类型和名称属性代码“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');
          }
      

      当您创建产品时,您可以在属性上选择类别(在属性集中定义它们)

      【讨论】:

        猜你喜欢
        • 2021-02-25
        • 1970-01-01
        • 1970-01-01
        • 2015-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多