Magento 1.8.1.0:显示产品选项下拉列表中的数量,编辑select.phtml

时间:2014-06-05 19:25:53

标签: php mysql magento

我已成功修改了产品信息>自定义选项表单允许输入特定选项的数量。现在,我正在努力使数量显示在“标题”和“固定价格”旁边的产品视图页面的下拉列表中。

通过一些研究,我已经能够将选项布局的负责文件跟踪到:

应用程序/设计/前端/默认/ 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();

        }

//结束我的自定义

&GT;

getOption(); ?&GT; getIsRequire())echo'class =“required”'?&gt;&gt; getIsRequire())echo' * '?&gt; htmlEscape($ _ option-&gt; getTitle())?&gt; * /&GT?; ?

decoratedIsLast){&GT;类= “最后” &GT;

<div class="input-box">
getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_DROP_DOWN                 || $ _option-&gt; getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_MULTIPLE){?&gt;
    <?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 个答案:

答案 0 :(得分:1)

是的,应该覆盖类

<强> Mage_Catalog_Block_Product_View_Options_Type_Select

并更改

$ _ value-&gt; getTitle()。 ''。 $ priceStr。 '',

$ _ value-&gt; getTitle()。 '('。$ _value-&gt; getQty()。')'。 $ priceStr。 '',

其中Qty是Magento索引,保存数量。