2

今日、私はmagentoサイトの登録フォームで作業を開始しました。ご存知のように、デフォルトではgender drop down。これをに変更する必要がありcheckboxます。

これまでのところ、ファイルに移動して、選択したファイルregister.phtmlを追加しようとしまし<input type="radio" ...../>たが、これは機能しませんでした。

誰かがこれを解決する方法を知っていましたか?これについていくつか提案をお願いします。

4

2 に答える 2

1

検証を忘れないでください!

<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 に答える