php - Magento 1.8.1.0 : Display Quantity In Drop Down list of product options, 编辑 select.phtml

标签 php mysql magento

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

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

app/design/frontend/default/MY_TEMPLATE/template/catalog/product/view/options/type/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();

        }

//结束我的自定义

?>

得到选项(); ?> getIsRequire()) echo ' class="required"' ?>>getIsRequire()) echo '*' ?>htmlEscape($_option->getTitle()) ?> */?>

decoratedIsLast){?> class="last">

<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>

最佳答案

是的,应该覆盖类

Mage_Catalog_Block_Product_View_Options_Type_Select

和改变

$_value->getTitle() 。 ''。 $价格海峡。 '',

$_value->getTitle() 。 ' (' . $_value->getQty() . ') ' . $价格海峡。 '',

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

关于php - Magento 1.8.1.0 : Display Quantity In Drop Down list of product options, 编辑 select.phtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24068585/

相关文章:

php - Magento ORM 文档

php - 如何在出现 403 错误时从 magento 数据库的管理面板中删除 https

PHP - 为什么 "Index.php?action="不被识别为 "Index.php?"

php - 如何从 PHP 获取回显到 Swift UIAlertController

java - 使用 php 动态创建 JNLP,但存在icedtea web 启动问题

php - 如何使用 PHP 将多个 XML 价格插入到 SQL 表中

java - MySQL 可与 Java 配合使用,但不能与 Android 配合使用

mysql - Spring MVC + ComboPooledDataSource( hibernate )

python - Python Web 应用程序问题

php - Magento 自定义布局 local.xml 不适用于自定义模块输出页面