我想为不同的类别展示不同的 list.phtml 和 view.phtml 。
我的代码是:
<CATEGORY_4>
<reference name="product_list">
<action method="setTemplate"><name>catalog/product/list_new.phtml</name></action>
</reference>
</CATEGORY_4>
答案 0 :(得分:6)
您的代码将帮助您针对不同类别使用不同的 list.phtml 。要为不同的类别产品使用不同的 view.phtml ,您必须设置不同的属性属性集并为不同的属性集分配不同的模板。检查此链接以了解如何操作 Magento: template based on attribute set
OR
如果类别页面和产品视图页面都使用相同的页面布局,例如:类别页面和产品视图页面使用1column.phtml页面布局,您可以使用不同的 list.phtml 和<对于不同类别的strong> view.phtml ,请按照以下步骤操作。
<reference name="product_list"> <action method="setTemplate"><name>catalog/product/your-list-filename.phtml</name></action> </reference> <reference name="product.info"> <action method="setTemplate"><template>catalog/product/your-view-filename.phtml</template></action> </reference>
对要更改的所有类别重复此操作。
答案 1 :(得分:0)
感谢您的帖子。 我刚用过这个
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/your-view-filename.phtml</template> </action>
</reference>
它工作正常。但如果我在多个类别中设置一个产品,那么它就不会处理布局。它调用相同的文件“your-view-filename.phtml”。即使我从这两个类别中经历过。
答案 2 :(得分:0)
使用方法:
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/your-view-filename.phtml</template> </action>
</reference>
产品布局仅在您从已定义产品的类别页面访问产品时应用。例如,如果您从主页访问产品,则不会应用该产品。我所做的将布局应用于属于已定义类别的所有产品的方法是从Mage_Catalog_Model_Design重写函数getDesignSettings():
public function getDesignSettings($object)
{
if ($object instanceof Mage_Catalog_Model_Product) {
$customCat = 'XX';
$productCats = $object->getAvailableInCategories();
if (in_array($customCat, $productCats))
$currentCategory = Mage::getModel('catalog/category')->load($customCat);
else
$currentCategory = $object->getCategory();
} else {
$currentCategory = $object;
}
$category = null;
if ($currentCategory) {
$category = $currentCategory->getParentDesignCategory($currentCategory);
}
if ($object instanceof Mage_Catalog_Model_Product) {
if ($category && $category->getCustomApplyToProducts()) {
return $this->_mergeSettings($this->_extractSettings($category), $this->_extractSettings($object));
} else {
return $this->_extractSettings($object);
}
} else {
return $this->_extractSettings($category);
}
}