Magento - 拉一个客户评论

时间:2011-05-18 09:50:46

标签: php magento

我一直在努力将一个客户评论纳入产品页面。

我没有代码可以显示为老实说,我不知道从哪里开始,也无法在网上找到它。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我之前写了一篇关于将所有评论元素带到产品页面的教程,因此您可以按照本教程进行操作:http://www.e-commercewebdesign.co.uk/blog/magento-tutorials/product-reviews-on-product-view-page.php

您所要做的就是重命名列表块并以相同的方式将其删除。然后简单地修改循环,以您认为合适的任何方式显示评论。例如。限制到某个数字或仅回应某个用户的评论。

修改

要获得最新的评论非常简单,因为评论无论如何都是按日期排列的。

转到审核>产品> list.phtml

用以下代码替换该文件中的代码:

<?php $_items = $this->getReviewsCollection()->getItems();?>
<div class="box-collateral box-reviews" id="customer-reviews">
<?php if (count($_items)):?>
    <h2><?php echo $this->__('Customer Reviews') ?></h2>
    <?php echo $this->getChildHtml('toolbar') ?>
    <dl>
    <?php $r_count = 0; ?>
    <?php foreach ($_items as $_review):?>
    <?php if ($r_count == 0) { ?>
        <dt>
            <a href="<?php echo $this->getReviewUrl($_review->getId()) ?>"><?php echo $this->htmlEscape($_review->getTitle()) ?></a> <?php echo $this->__('Review by <span>%s</span>', $this->htmlEscape($_review->getNickname())) ?>
        </dt>
        <dd>
            <?php $_votes = $_review->getRatingVotes(); ?>
            <?php if (count($_votes)): ?>
            <table class="ratings-table">
                <col width="1" />
                <col />
                <tbody>
                    <?php foreach ($_votes as $_vote): ?>
                    <tr>
                        <th><?php echo $this->escapeHtml($_vote->getRatingCode()) ?></th>
                        <td>
                            <div class="rating-box">
                                <div class="rating" style="width:<?php echo $_vote->getPercent() ?>%;"></div>
                            </div>
                        </td>
                    </tr>

                    <?php endforeach; ?>
                </tbody>
            </table>
            <?php endif; ?>
            <?php echo nl2br($this->htmlEscape($_review->getDetail())) ?>
            <small class="date"><?php echo $this->__('(Posted on %s)',       $this->formatDate($_review->getCreatedAt()), 'long') ?></small>
        </dd>
        <?php } ?>
        <?php $r_count++; ?>
    <?php endforeach; ?>

    </dl>
    <?php echo $this->getChildHtml('toolbar') ?>
<?php endif;?>
<?php echo $this->getChildHtml('review_form') ?>
</div>

我很简单地将一个交互器放入循环 $ r_count 并在foreach中放入一个检查,以防止它在下一个循环迭代中继续进行。