在Magento中展示产品选项的HTML代码(块)

redmaomail 2024-07-24 18:12 阅读数 65 #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; 
	}
}

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机