我使用FireGento中的一些插件覆盖price.html,以显示税率和交货时间以下我的品红价格(德国特定)的其他信息。
在某些layout.xml中,插件定义了新price.html的输出位置。
示例:
<!--
Adding custom product price block
-->
<catalog_category_default>
<reference name="product_list">
<action method="addPriceBlockType">
<type>simple</type>
<block>magesetup/catalog_product_price</block>
<template>catalog/product/price.phtml</template>
</action>
</reference>
</catalog_category_default>
一切正常,但是当我使用Ajax Calls时,我的价格显示没有附加信息。
可以更新我的layout.xml以进行ajax调用,或者在我获得产品集合时设置addPriceBlockType是可以实现的吗?
答案 0 :(得分:0)
当我的价格区块不是来自FireGento_MageSetup_Block_Catalog_Product_Price
的实例时,我使用一个观察者从FireGento添加特殊的phtml代码public function addPriceGerman(Varien_Event_Observer $observer) {
//lese jeden Block aus
$block = $observer->getBlock();
//ist der Block ein Price Block aber kein FireGento_MageSetup Preisblock?
if ($block instanceof Mage_Catalog_Block_Product_Price AND !$block instanceof FireGento_MageSetup_Block_Catalog_Product_Price) {
$transport = $observer->getTransport();
//hole den eigentlichen HTML Code vom Preisblock
$output = $transport->getHtml();
//hole das Produkt
$product = $observer->getEvent()->getBlock()->getProduct();
//Instanz vom MageSetup Block erzeugen
$productPrice = new FireGento_MageSetup_Block_Catalog_Product_Price();
//setze das Produkt
$productPrice->setProduct($product);
//Rendern der deutschen Preisinfo
$germanTemplate = $block->getLayout()->createBlock('core/template')
->setTemplate('magesetup/price_info.phtml')
->setProduct($product)
->setFormattedTaxRate($productPrice->getFormattedTaxRate())
->setIsIncludingTax($productPrice->isIncludingTax())
->setIsIncludingShippingCosts($productPrice->isIncludingShippingCosts())
->setPriceDisplayType(Mage::helper('tax')->getPriceDisplayType())
->setIsShowShippingLink($productPrice->isShowShippingLink())
->setIsShowWeightInfo($productPrice->getIsShowWeightInfo())
->setFormattedWeight($productPrice->getFormattedWeight())
->toHtml();
//deutsche preisinfo an ursprünglichen html code anhägen
$transport->setHtml($output . $germanTemplate);
}
return $this;
}