限制产品页面magento上显示的产品数量

时间:2012-10-08 14:37:27

标签: php magento

所以我想出了如何在产品页面上显示产品评论。现在,我需要了解如何限制显示的评论数量,并在产品评论默认页面中添加“阅读更多评论”链接。

有什么想法吗?或者有人能指出我正确的方向吗?我尝试了许多不同的脚本而没有运气。

更新:我尝试在下面进行更改,但仍然无法正常工作 - 对我做错了什么想法?

是的,这就是我的想法,但它仍然没有用,任何想法我做错了什么?

<?php $_items = $this->getReviewsCollection()->setPageSize('5')->getItems();?>
<div class="box-collateral box-reviews" id="customer-reviews">
<?php if (count($_items)):?>
<div class="box-title">
    <h2><?php echo $this->__('Customer<br><span id="smallH2">Reviews</span>') ?></h2>
</div>
<?php echo $this->getChildHtml('toolbar') ?>
<dl class="box-content" id="product-reviews-list">
<?php foreach ($_items as $_review):?>
<dt>
<?php
$reviewURL = $this->getReviewUrl($_review->getId());
$reviewURL = str_replace("catalog","review",$reviewURL);
?>
<a href="<?php echo $reviewURL ?>"><?php echo $this->htmlEscape($_review->getTitle())            ?></a>       <?php echo $this->__('Review by <span>%s</span>', $this->htmlEscape($_review->getNickname())) ?>
</dt> 
    <dd>
        <table class="data-table review-summary-table">
            <col />
            <col />
            <tbody>
                <?php foreach ($_review->getRatingVotes() as $_vote): ?>
                <tr>
                    <th class="label"><?php echo $this->escapeHtml($_vote->getRatingCode()) ?></th>
                    <td class="value">
                        <div class="rating-box">
                            <div class="rating" style="width:<?php echo $_vote->getPercent() ?>%;">    
</div>
                        </div>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <p><?php echo nl2br($this->htmlEscape($_review->getDetail())) ?></p>
        <p class="date"><?php echo $this->__('(Posted on %s)',    $this->formatDate($_review->getCreatedAt()), 'long') ?></p>
    </dd>
<?php endforeach; ?>
</dl>
<script type="text/javascript">decorateGeneric($$('#product-reviews-list dd'), ['last']);</script>
<?php endif;?>
<?php echo $this->getChildHtml('review_form') ?>
</div>

4 个答案:

答案 0 :(得分:1)

这是我最终选择的解决方案:

<?php
$i = 1;
foreach ($_items as $_review):
    if ($i < 6): ?>

感谢所有试图提供帮助的人......

答案 1 :(得分:1)

我不得不这样做,并找到了一种更健壮的方式。在主题的review.xml文件中找到创建寻呼机的这一行:

<block type="page/html_pager" name="product_review_list.toolbar" />

并将其替换为以下内容(除了您喜欢的任何数字):

<block type="page/html_pager" name="product_review_list.toolbar">
    <action method="setLimit"><limit>6</limit></action>
</block>

答案 2 :(得分:1)

app\code\core\Mage\Review\Block\Product\View\List.php

 protected function _beforeToHtml()
{
    $this->getReviewsCollection()->setPageSize(5)
        ->load()
        ->addRateVotes();
    return parent::_beforeToHtml();
}

它为我工作。当然,你应该重写块

答案 3 :(得分:0)

我希望您使用集合来获取评论。所以你可以制作

$collection->setPageSize('number of reviews on page');