【问题标题】:Magento product view template based on category基于类别的 Magento 产品视图模板
【发布时间】:2012-03-22 09:57:21
【问题描述】:

我们正在开发一个 Magento 网上商店,它有两个类别。

我们想为类别一使用默认产品视图模板,为类别二使用自定义产品视图模板。

这可能吗?我们如何才能做到这一点?

* 编辑 - 解决方案 *

对于任何对此感到好奇的人。解决方案比我想象的要容易得多。

我只需要将这段代码放在相关类别的自定义布局更新部分,我必须将选项“应用于产品”设置为是!

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

* 编辑 * 我已尝试将此代码添加到 catalog.xml。

<CATEGORY_5>
    <reference name="product.info">
        <action method="setTemplate"><template>catalog/product/view-recipe.phtml</template></action>
    </reference>
</CATEGORY_5>

* 编辑 * 我已尝试将此代码添加到 catalog.xml:

<CATEGORY_5>
    <reference name="product.info">
        <action method="setTemplate"><template>catalog/product/view-recipe.phtml</template></action>
    </reference>
</CATEGORY_5>

这个代码到自定义布局更新部分:

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

我安装了补丁,但不幸的是仍然没有结果。

【问题讨论】:

  • Michael,如果我没记错的话,你应该把 &lt;CATEGORY_5&gt; 块放在布局更新部分。你也试过了吗?
  • 我试过但没有成功。我不知道我们做错了什么。
  • 嗨奥古兹。请参阅已编辑的开始帖子以获取解决方案!

标签: magento


【解决方案1】:

您是说类别目录列表吗?然后你可以试试“自定义布局更新”。

  • 目录 -> 管理类别
  • 从“页面布局”中选择自定义布局
  • 在“自定义布局更新”中添加以下内容
<reference name="product_list">
<action method="setTemplate">
    <template>catalog/product/custom-theme.phtml</template>
</action>
</reference>

当然要先创建custom layout,可以参考基础list.phtml

* 编辑 * 如果您想定制特定的产品/类别,那么您可以使用custom layout handle。请考虑以下链接。

* 编辑 * 首先,您应该修改 /app/code/core/Mage/Catalog/Controllers 文件夹中的 CategoryController.php viewAction() 方法(在 Incho 示例中指定)。

那么,你应该这样做:

<CATEGORY_20>
<reference name="product.info">
            <action method="setTemplate"><template>catalog/product/custom-theme.phtml</template></action>
    </reference>
</CATEGORY_20>

* 编辑 * Magento 有一个关于自定义布局更新的错误,问题 id 为 7625。他们指定在下一个版本中通过错误跟踪修复,但仍然存在问题。所以,Ingo Weseloh 做了一个补丁,你可以找到以下链接。

Exanto Reclayup 7625

* 编辑 *

Michael,你能不能试试这个(这是 Alan Storm 的建议)

<CATEGORY_20>
<reference name="product.info">
  <action method="setTemplate"><template>catalog/product/custom-theme.phtml</template></action>
  <action method="setIsHandle"><applied>1</applied></action>
</reference>

【讨论】:

  • 嗨奥古兹。不,我指的不是产品列表,而是产品视图,如开始帖子中所述。
  • 嗨奥古兹。我不明白。默认catalog.xml 引用 部分中的catalog/product/view.phtml。我如何制作一个自定义布局句柄,它引用 /catalog/product/view-custom.phtml 例如类别 5?
  • Michael,具体看一下 inchoo 样本。您应该修改基本操作(添加布局句柄),然后在布局更新 xml 部分中使用。
  • 嗨奥古兹。仍然没有成功。我在布局更新 xml 部分中使用了上面的代码。我还应该在其他地方添加代码吗?
  • 是的,正如我在评论中所说,您应该注意 inchoo 样本。他们修改了CategoryController 控制器viewAction() 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
相关资源
最近更新 更多