2012-12-14 49 views
0

我有maden自定義產品類型(酒店)。它在後端具有自定義選項選項卡。自定義選項不會出現在自定義產品類型的view.phtml

我在某些產品(酒店)中添加了一些自定義選項。我已將html添加到我的自定義主題的view.phtml以輸出自定義選項。

<?php if ($this->hasOptions()):?> <?php echo $this->getChildHtml('container1','', true, true) ?> <?php endif;?> 

此外,我已經添加塊到我的佈局。

  <block type="core/template_facade" name="product.info.container1" as="container1"> 
       <action method="setDataByKey"><key>alias_in_layout</key><value>container1</value></action> 
       <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action> 
       <action method="append"><block>product.info.options.wrapper</block></action> 
       <action method="append"><block>product.info.options.wrapper.bottom</block></action> 
      </block> 
      <block type="core/template_facade" name="product.info.container2" as="container2"> 
       <action method="setDataByKey"><key>alias_in_layout</key><value>container2</value></action> 
       <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action> 
       <action method="append"><block>product.info.options.wrapper</block></action> 
       <action method="append"><block>product.info.options.wrapper.bottom</block></action> 
      </block> 

<action method="unsetCallChild"><child>container1</child><call>ifEquals</call><if>0</if> <key>alias_in_layout</key><key>options_container</key></action> 
<action method="unsetCallChild"><child>container2</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action> 

但是<?php echo $this->getChildHtml('container1','', true, true) ?>返回空。

如何顯示選項塊?

回答

1

我已經解決了這個問題,並在助手中創建了函數來呈現自定義選項。代碼如下:

public function getHotelCustomOptionsHtml(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","inchoo_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","catalog/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() =="hotel") 
    { 
     $blockOption->setProduct($product); 
     if($product->getOptions()) 
     { 
      foreach ($product->getOptions() as $o) 
      { 
       $blockOptionsHtml .= $blockOption->getOptionHtml($o); 
      }; 
     } 
    } 

    return $blockOptionsHtml; 
} 
相關問題