【问题标题】:Magento customizing Rating radio buttonMagento 自定义评级单选按钮
【发布时间】:2013-04-10 05:40:12
【问题描述】:

想要反转单选按钮字段的值:

现在magento中的默认情况:
1 星 => 6
2 星 => 7
3 星 => 8
4 星 => 9
5 星 => 10

预期的定制
5 星 => 10
4 星 => 9
3 星 => 8
2 星 => 7
1 星 => 6

我尝试输入arsort,但没有成功。

Code :

路径:Mage/review/Block/Form.php

public function getRatings()
    {
        $ratingCollection = Mage::getModel('rating/rating')
            ->getResourceCollection()
            ->addEntityFilter('product')
            ->setPositionOrder()
            ->addRatingPerStoreName(Mage::app()->getStore()->getId())
            ->setStoreFilter(Mage::app()->getStore()->getId())
            ->load()
            ->addOptionToItems();
        return $ratingCollection;
    }

路径:form.phtml(模板文件代码)

<?php foreach ($this->getRatings() as $_rating): ?>
                        <tr>
                            <th><?php echo $this->escapeHtml($_rating->getRatingCode()) ?></th>
                        <?php foreach ($_rating->getOptions() as $_option): ?>
                            <td class="value"><input type="radio" name="ratings[<?php echo $_rating->getId() ?>]" id="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>" value="<?php echo $_option->getId() ?>" class="radio" /></td>
                        <?php endforeach; ?>
                        </tr>
                    <?php endforeach; ?>

单选按钮中的值:value="&lt;?php echo $_option-&gt;getId() ?&gt;" 即:按升序排列(默认):11,12,13,14,15
应该是:15,14,13,12,11。

【问题讨论】:

  • 请贴出相关代码
  • @billyonecan : 已添加更新部分。

标签: php magento collections rating


【解决方案1】:

有一个 PHP 函数 array_reverse() 用于反转评级数组。 这将是您的最终结果:

<?php foreach ($this->getRatings() as $_rating): ?>
    <tr>
        <th><?php echo $this->escapeHtml($_rating->getRatingCode()) ?></th>
        <?php foreach (array_reverse($_rating->getOptions()) as $_option): ?>
            <td class="value"><input type="radio" name="ratings[<?php echo $_rating->getId() ?>]" id="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>" value="<?php echo $_option->getId() ?>" class="radio" /></td>
        <?php endforeach; ?>
    </tr>
<?php endforeach; ?>

我也尝试过并完成了这项工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2019-10-11
    • 2021-04-23
    • 2018-10-08
    • 2015-08-16
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多