是否可以将可用的自定义选项列表输出到Magento中的view.phtml页面?显然,下拉列表允许您过滤掉,但我需要在html表中列出它们,并允许客户在每个项目上添加到购物车。
答案 0 :(得分:1)
我将向您展示如何将dropdown
和multi-select
选项转换为表格格式。这是诀窍的代码。
<?php
$product = Mage::Registry('current_product');
$options = $product->getOptions();
//check for option exists
if($options):
foreach ($options as $option) :
//table format allows only for select options
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' : '';
if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
$value_name = 'options['.$option->getid().']';
else:
$value_name = 'options['.$option->getid().'][]';
endif;
?>
<table border="1" style="width:500px;margin-bottom:30px">
<thead>
<tr<?php if ($option->getIsRequire()) echo ' class="required"' ?>>
<th><?php echo $option->getTitle() ?></th>
<th><?php if ($option->getIsRequire()) echo '<em>*</em>' ?></th>
</tr>
</thead>
<tbody id="<?php echo 'select_'.$option->getId() ?>" class="<?php echo $require.' product-custom-option' ?>">
<?php
foreach ($option->getValues() as $values) :
$value = $values->getOptionTypeId();
$value_title = $values->getTitle();
?>
<tr>
<td>
<?php
if($option->getType()== Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN):
?>
<input type="radio" name="<?php echo $value_name; ?>" class="radio_option" id="<?php echo 'radio_option_'.$value ?>" value="<?php echo $value; ?>" />
<?php
else:
?>
<input type="checkbox" name="<?php echo $value_name; ?>" class="checkbox_option" id="<?php echo 'checkbox_option_'.$value ?>" value="<?php echo $value; ?>" />
<?php
endif;
?>
</td>
<td><?php echo $value_title; ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
</table>
<?php
endif;
endforeach;
endif;
?>
此处针对dropdown
选项,我们使用radio button
来显示其值。对于multiselect
选项,使用checkbox
输入。因此,如果表格中出现复选框,则表示它是一个多选项,因此一次可以有多个复选框。由于单选按钮用于下拉选项,因此务必确保一次只检查一个单选按钮。 (我们需要使用javascript来确保这一点)。
因此,如果我们通过像这样的管理员为产品设置一些自定义选项..
输出对应我们的代码将如下所示
注意:请注意,代码采用非常基本的格式。您可能需要额外的CSS和javascripts,以使其更加用户。这是为了给你一个基本的想法和额外的CSS,js因此是开箱即用的主题。
有关代码的详细信息,请查看my blog
希望有所帮助