2014-06-05 18 views
1

我已成功修改產品信息>自定義選項表單以允許輸入特定選項的數量。現在我正在努力讓數量顯示在產品查看頁面的「標題」和「固定價格」旁邊的下拉列表中。Magento 1.8.1.0:在下拉菜單中顯示數量產品選項列表中,編輯select.phtml

經過一番研究,我已經能夠跟蹤負責文件的選項佈局:

應用程序/設計/前端/默認/ MY_TEMPLATE /模板/目錄/產品/視圖/選項/類型/ select.phtml

但是現在我不確定我需要修改哪些代碼來顯示下拉列表中的數量。任何幫助將非常感激!

下面是來自select.phtml文件中的代碼:

<?php 

//開始我的自定義

 $_option = $this->getOption(); 

     $configValue = $this->getProduct()->getPreconfiguredValues()->getData('options/' . $_option->getId()); 

     $store = $this->getProduct()->getStore(); 



     if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN 

      || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE) { 

      $require = ($_option->getIsRequire()) ? ' required-entry' : ''; 

      $extraParams = ''; 

      $select = $this->getLayout()->createBlock('core/html_select') 

       ->setData(array(

        'id' => 'select_'.$_option->getId(), 

        'class' => $require.' product-custom-option' 

       )); 

      if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN) { 

       $title_options = ($_option->getIsRequire())?$this->htmlEscape($_option->getTitle())." *":$this->htmlEscape($_option->getTitle()) ; 



       $select->setName('options['.$_option->getid().']') 

        ->addOption('', $title_options); 

      } else { 

       $select->setName('options['.$_option->getid().'][]'); 

       $select->setClass('multiselect'.$require.' product-custom-option'); 

      } 

      foreach ($_option->getValues() as $_value) { 

       if($_value->getPrice(($_value->getPriceType() == 'percent'))== 0){ 

        $sign = '+'; 

        $priceStr = $sign . $this->helper('core')->currencyByStore(0, $store, true, false); 

       } 

       else{ 

        $priceStr = $this->_formatPrice(array(

         'is_percent' => ($_value->getPriceType() == 'percent'), 

         'pricing_value' => $_value->getPrice(($_value->getPriceType() == 'percent')) 

        ), false); 

       } 

       $select->addOption(

        $_value->getOptionTypeId(), 

        $_value->getTitle() . ' ' . $priceStr . '', 

        array('price' => $this->helper('core')->currencyByStore($_value->getPrice(true), $store, false)) 

       ); 

      } 

      if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE) { 

       $extraParams = ' multiple="multiple"'; 

      } 

      if (!$this->getSkipJsReloadPrice()) { 

       $extraParams .= ' onchange="opConfig.reloadPrice()"'; 

      } 

      $select->setExtraParams($extraParams); 



      if ($configValue) { 

       $select->setValue($configValue); 

      } 



      $selectHtml = $select->getHtml(); 

     } 

//結束我的自定義

>

? getOption(); ?> getIsRequire())回波 '類= 「需要」'?>> getIsRequire())回聲 *'?> htmlEscape($ _選項 - >的getTitle())?> * /?>

decoratedIsLast){?>類= 「最後」>

<div class="input-box"> 
的getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_DROP_DOWN || $ _option->的getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_MULTIPLE){?>
<?php echo $selectHtml; ?> 

<?php 

    } else{ 

     echo $this->getValuesHtml(); ?> 

<?php } ?> 

    <?php if ($_option->getIsRequire()): ?> 

     <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?> 

      <span id="options-<?php echo $_option->getId() ?>-container"></span> 

     <?php endif; ?> 

    <?php endif;?> 

</div> 

回答

1

是的,應該重寫類

Mage_Catalog_Block_Product_View_Options_Type_Select

,改變

$ _value-> getTitle()。 ''。 $ priceStr。 '',

$ _value->的getTitle()。 '('。$ _value-> getQty()。')'。 $ priceStr。 '',

其中Qty是Magento索引,在此索引下數量被保存。

相關問題