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


Is it possible to create a custom product view page in magento

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

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

请提出建议。

您可以通过两种方式来实现。

  1. 在产品的"编辑"页面上的"管理产品"中,您可以在"设计"选项卡中定义自定义布局。但你们必须对所有想要有新设计的产品做同样的事情,将来很难管理哪个产品使用什么布局
  2. 为产品提供下拉属性,比如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.phtmlview_internationl.phtml

您可以在视图文件中放置不同的代码,使它们看起来不同。对于进一步的更改,您在catalog.xml中有自己的handler标记。想怎么用就怎么用。