这个简单的Magento助手可以帮你显示产品选项的html代码。它适用于简单(simple), 虚拟(virtual)和可配置(configurable)产品。我相信你也可以将同样的方法应用到其它产品上。获取可配置产品选项的HTML代码会一点。 对于简单产品,我们有一种非常“干净的方法”。 首先,我们为产品设置一个块,接着我们添加物品渲染器(template和type)到产品选项块。最后一步就是创建迭代选择并与我们的产品选项块一起显示。 我们可以看到一些不错的松耦合和代码分离。另一方面,获取可配置产品选项的html代码并不这么灵活。实例块,实例化产品。我们获取选项的html。 抽样:echo Mage::helper("alwayly_checkout")->getProductOptionsHtml(Mage::getModel("catalog/product")->load(171)); 助手:<!--?php <br ?-->/** * @category Alwayly * @package Alwayly_Checkout * @author Alwayly */ class Alwayly_Checkout_Helper_Data extends Mage_Core_Helper_Abstract { /** * * getting html for options of products * @param Mage_Catalog_Model_Product $product */ public function getProductOptionsHtml(Mage_Catalog_Model_Product $product) { $blockOption = Mage::app()->getLayout()->createBlock("Mage_Catalog_Block_Product_View_Options"); $blockOption->addOptionRenderer("default","catalog/product_view_options_type_default","catalog/product/view/options/type/default.phtml"); $blockOption->addOptionRenderer("text","catalog/product_view_options_type_text","alwayly_catalog/product/view/options/type/text.phtml"); $blockOption->addOptionRenderer("file","catalog/product_view_options_type_file","catalog/product/view/options/type/file.phtml"); $blockOption->addOptionRenderer("select","inchoo_checkout/product_view_options_type_select","catalog/product/view/options/type/select.phtml"); $blockOption->addOptionRenderer("date","catalog/product_view_options_type_date","catalog/product/view/options/type/date.phtml") ; $blockOptionsHtml = null; if($product->getTypeId()=="simple"||$product->getTypeId()=="virtual"||$product->getTypeId()=="configurable") { $blockOption->setProduct($product); if($product->getOptions()) { foreach ($product->getOptions() as $o) { $blockOptionsHtml .= $blockOption->getOptionHtml($o); }; } } if($product->getTypeId()=="configurable") { $blockViewType = Mage::app()->getLayout()->createBlock("Mage_Catalog_Block_Product_View_Type_Configurable"); $blockViewType->setProduct($product); $blockViewType->setTemplate("inchoo_catalog/product/view/type/options/configurable.phtml"); $blockOptionsHtml .= $blockViewType->toHtml(); } return $blockOptionsHtml; } }(责任编辑:好模板) |