我是magento的新手,我需要在magento中有两个产品视图页面。一个用于本地产品,另一个用于国际产品。我已经自定义了默认的产品视图页面,以便显示本地产品。当我点击"国际产品"链接时,将显示国际产品查看页面,该链接是我在默认产品查看页面中提供的。我为国际产品创建了一个名为"international"的功能齐全的模块。但现在我完全不知所措。
如何使我的自定义模块的功能与默认的产品视图页面完全相同?这是制作另一个产品视图页面的正确方法吗?
请提出建议。
您可以通过两种方式来实现。
- 在产品的"编辑"页面上的"管理产品"中,您可以在"设计"选项卡中定义自定义布局。但你们必须对所有想要有新设计的产品做同样的事情,将来很难管理哪个产品使用什么布局
- 为产品提供下拉属性,比如locality_type,选项为"International"、"Local",然后在布局处理程序的帮助下根据属性值动态更改布局
我发现第二种方法非常方便,因为我可以根据属性值确定我的布局正在更改,更改此属性值将很容易地更改我的布局。
这就是它的实施方式。
更新app/code/core/Mage/Catalog/Helper/Product/View.php
中的initProductLayout
方法
$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>
现在剩下的就是必须在{theme}/template/catalog/product
中创建这两个文件view_local.phtml
和view_internationl.phtml
您可以在视图文件中放置不同的代码,使它们看起来不同。对于进一步的更改,您在catalog.xml
中有自己的handler标记。想怎么用就怎么用。