是否可以在magento中创建自定义产品视图页面

时间:2013-12-10 08:57:09

标签: php magento magento-1.7

我是magento的新手,我需要在magento中有两个产品视图页面。 一个用于本地产品,另一个用于国际产品。我已自定义默认产品视图页面以显示本地产品。 当我点击我在默认产品视图页面中提供的“国际产品”链接时,将显示国际产品视图页面。我为国际产品创建了一个名为'international'的功能齐全的模块。但现在我完全混乱了。

如何使我的自定义模块与默认的产品视图页面完全相同?这是制作另一个产品视图页面的正确方法吗?

请建议。

1 个答案:

答案 0 :(得分:1)

你可以通过两种方式完成。

  1. 在产品的“管理产品”页面中,您可以在“设计”选项卡中定义自定义布局。 但是,你必须对你想要进行新设计的所有产品做同样的事情,将来很难用哪种布局来管理哪种产品。
  2. 为产品提供下拉属性,让我们说locality_type,选项为“国际”,“本地”,然后在布局处理程序的帮助下,根据属性值动态更改布局。
  3. 我发现第二种方式非常方便,因为我可以根据属性值确定我的布局正在改变,更改此属性值将轻松改变我的布局。

    这就是它的实施方式。

    更新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中拥有自己的处理程序标记。根据需要使用它。