所以我想出了如何在产品页面上显示产品评论。现在,我需要了解如何限制显示的评论数量,并在产品评论默认页面中添加“阅读更多评论”链接。
有什么想法吗?或者有人能指出我正确的方向吗?我尝试了许多不同的脚本而没有运气。
更新:我尝试在下面进行更改,但仍然无法正常工作 - 对我做错了什么想法?
是的,这就是我的想法,但它仍然没有用,任何想法我做错了什么?
<?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>
答案 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');