2012-01-04 129 views
0

我在网上搜索了如何在产品页面上添加“模块”与我的模板。我建立了我的自定义模块,显示某种信息,我想说明一下,让我们来说说我的产品的长篇描述。Magento - 在产品信息页面上注入自定义模块

我一直在试图格式化我的模块的xml布局,但没有运气。

经过一番搜索,我发现这个:Programatically create Magento blocks and inject them into layout,我不能让它为我工作。但这可能是因为我错过了一些东西。

我模块的结构是这样的:

CODE:应用程序/代码/本地/ deveti/Countrypurchase

设计:应用程序/设计/前端/预设/默认/模板/ Countrypurchase/index.phtml

布局:应用程序/设计/前端/预设/默认/布局/ countrypurchase.xml

我知道正确的方法是编辑主要布局文件,手动添加块,但我想这样做的苍蝇。

编辑:这工程!

所以我会做我的模块布局XML countrypurchase.xml是这样的:

<?xml version="1.0"?> 
<layout version="1.0"> 
    <catalog_product_view> 
     <reference name="product.info"> 
      <block type="core/template" name="product.countrypurchase" as="countrypurchase" template="countrypurchase/index.phtml" /> 
     </reference> 
    </catalog_product_view>  
</layout> 

而且我添加了一个电话到目录/产品/ view.phtml:

<?php echo $this->getChildHtml('countrypurchase'); ?> 

它的工作原理;)

谢谢你的帮助!

+0

我假设你的缓存被禁用并清除? – 2012-01-04 20:29:05

+0

是的。我总是测试这些事情与缓存禁用和清除。 – 2012-01-05 08:24:29

回答

1

产品查看页面的问题是它的输出主要由模板catalog/product/view.phtml中的PHP代码控制。 Magento并没有提供很多可扩展性。您可以将它添加到content块,但这会将您的自定义内容完全放在顶部或完全放在底部。

我想你需要修改的模板,并添加PHP代码在你想要的位置,以使您的自定义模块,如:

<?php 
    echo $this->getChildHtml('product.countrypurchase'); 
?> 

有了这个地方,你可以使用名称添加块product.countrypurchase通过XML布局或以编程方式。

+0

如果你可以看看,我已经将我的代码添加到了问题中。谢谢! – 2012-01-05 08:29:03

+0

它工作。如果有其他人需要,我会编辑我的问题中的代码。 – 2012-01-05 09:13:55

相关问题