2

今天我开始在magento网站的注册表中工作。如您所知,默认情况下它具有gender drop down. 我需要将其更改为checkbox.

到目前为止,我去了register.phtml文件,并尝试添加<input type="radio" ...../>选择文件,但这没有奏效。

有谁知道如何解决这个问题!请给我一些建议,这样......

4

2 回答 2

1

Do not forget the validation!

<div class="input-box">
    <?php
        $options = Mage::getResourceSingleton('customer/customer')->getAttribute('gender')->getSource()->getAllOptions();
        $value = $this->getGender();
        $_last = count($options);
        $_index = 0;
    ?>
    <?php foreach ($options as $option):?>
        <?php if($option['value'] != ''): ?>
            <input id="<?php echo $this->getFieldId('gender')?>-<?php echo $option['value'] ?>"
                   class="radio<?php if ($this->isRequired() && $_index == $_last - 1):?> validate-one-required<?php endif; ?>"
                   type="radio" title="<?php echo $option['label'] ?>"
                   value="<?php echo $option['value'] ?>" name="<?php echo $this->getFieldName('gender')?>"
                   <?php if ($option['value'] == $value) echo ' checked="checked"' ?>>
            <label for="<?php echo $this->getFieldId('gender')?>-<?php echo $option['value'] ?>">
                <?php echo $option['label'] ?>
            </label>
        <?php endif; ?>

        <?php $_index++; ?>
    <?php endforeach;?>
</div>
于 2015-03-11T10:11:52.023 回答
0

Magento 在注册表单上使用小部件。实际上,在模板 register.phtml 中,您可以看到以下几行:


<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
<?php if ($_gender->isEnabled()): ?>
    <li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
<?php endif ?>

这个特定的小部件可以在template/customer/widget目录中找到。因此,为了将选择更改为单选按钮,请将其(模板)复制到您的主题并进行修改,例如:


<div class="input-box">
    <label><?php echo $this->__('Gender'); ?></label>
    <?php $options = Mage::getResourceSingleton('customer/customer')->getAttribute('gender')->getSource()->getAllOptions();?>
    <?php $value = $this->getGender();?>
    <?php foreach ($options as $option):?>
    <input type="radio" name="<?php echo $this->getFieldName('gender')?>" value="<?php echo $option['value'] ?>"<?php if ($option['value'] == $value) echo ' selected="selected"' ?> /><?php echo $option['label'] ?>
    <br />
    <?php endforeach;?>
</div>

希望没有打错字。

于 2012-06-22T21:29:04.933 回答