我是magento的新手,我需要在magento中有两个产品视图页面。 一个用于本地产品,另一个用于国际产品。我已自定义默认产品视图页面以显示本地产品。 当我点击我在默认产品视图页面中提供的“国际产品”链接时,将显示国际产品视图页面。我为国际产品创建了一个名为'international'的功能齐全的模块。但现在我完全混乱了。
如何使我的自定义模块与默认的产品视图页面完全相同?这是制作另一个产品视图页面的正确方法吗?
请建议。
答案 0 :(得分:1)
你可以通过两种方式完成。
我发现第二种方式非常方便,因为我可以根据属性值确定我的布局正在改变,更改此属性值将轻松改变我的布局。
这就是它的实施方式。
更新initProductLayout
app/code/core/Mage/Catalog/Helper/Product/View.php
方法
在$update->addHandle('PRODUCT_' . $product->getId());
之后放置这些行
if($product->getAttributeText('locality_type')=='International')
$update->addHandle('PRODUCT_INTERNATIONAL');
if($product->getAttributeText('locality_type')=='Local')
$update->addHandle('PRODUCT_LOCAL');
现在更新{theme}/layout/catalog.xml
。在</PRODUCT_TYPE_virtual>
之后放置这些行
<PRODUCT_INTERNATIONAL>
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/view_international.phtml</template></action>
</reference>
</PRODUCT_INTERNATIONAL>
<PRODUCT_LOCAL>
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/view_local.phtml</template></action>
</reference>
</PRODUCT_LOCAL>
现在唯一剩下的就是你必须在view_local.phtml
view_internationl.phtml
和{theme}/template/catalog/product
您可以在视图文件中放置不同的代码,使它们看起来不同。对于进一步的更改,您在catalog.xml
中拥有自己的处理程序标记。根据需要使用它。