【问题标题】:Add some block to product view page through module xml file Magento通过模块 xml 文件 Magento 向产品视图页面添加一些块
【发布时间】:2014-05-20 20:15:08
【问题描述】:

嗨,我正在开发一个简单的扩展,其中

我需要通过 xml 文件在产品页面上插入一个新块。下面是我的模块的xml文件

<layout version="0.1.0">
      <total_index_index>
          <reference name="root">
             <action method="setTemplate"><template>page/2columns right.phtml</template></action>
           </reference>

           <reference name="content">
                  <block type="total/prototal"  name="total_prototal" template="total.phtml" />
                 </reference>
      </total_index_index>
</layout>

在此,布局正在处理模块 index 操作,并且 total.phtml 文件的内容是可见的。我需要在产品页面插入total.phtml的内容。

所以请建议我如何通过 xml 在产品页面上插入它。

谢谢

【问题讨论】:

  • 你的意思是需要在产品视图块下添加total_prototal块?
  • 是的,它可以在购物车按钮下方或上方

标签: xml magento module block inject


【解决方案1】:

试试这个:

<catalog_product_view>
        <reference name="alert.urls"> 
            <block type="total/prototal"  name="total_prototal" template="total.phtml" />  
        </reference>
</catalog_product_view>

确保该行必须存在于 view.phtml 文件中:

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

希望这会有所帮助!

【讨论】:

  • 嗨,我正在做同样的事情,但我的自定义块没有在“alert_urls”块下呈现。我想在产品视图页面上的产品名称和价格之后显示一些额外的信息。有没有其他解决方案可以做到这一点?
【解决方案2】:

我假设你的设计中有这样的文件和文件夹

/template/total/prototal.phtml

在你的 local.xml 中你可以像下面这样添加

<catalog_product_view>
     <reference name="product.info">
           <block type="core/template" name="total_prototal" template="total/prototal.phtml" after="product.info.addtocart"/>
      </reference>
</catalog_product_view>

现在在您的catalog/product/view.phtml 中,调用您的自定义块

之前

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

添加

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

【讨论】:

  • 我不想编辑视图文件。它应该自动添加
  • 如果您添加任何块,您需要在您的 phtml 文件中调用它。您需要告诉 Magento 放置它的位置
  • @Slimshadddyyy 这不是真的。您可以将块添加到 core/text_list 而不必手动渲染它们
猜你喜欢
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 2016-04-05
  • 2015-01-13
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多