提交 c25a47f4 编写于 作者: T Terry

apphtml5 product review star info

上级 12bb822f
......@@ -66,55 +66,55 @@
<div class="box pro_commit">
<div class="averageWarp">
<span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
<a lehref="#" class="review_star review_star_<?= round($reviw_rate_star_average) ?>" onclick="javascript:return false;"></a>
<b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
<span class="lineBlock"><?= Yii::$service->page->translate->__('based on {review_count} Customer Reviews',['review_count' => $review_count]) ?></span>
</div>
<div class="clear"></div>
<div class="lbBox writeRiviewTitle">
<ul class="lineBlock proportionStars">
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_5'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_5'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_4'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_4'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_3'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_3'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_2'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_2'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_1'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_1'] ?>%</span>
</li>
</ul>
<div class="lineBlock writeRiviewBtn">
<button type="submit" title="Save" class="button btn btn-primary addreview" onclick="javascrtpt:window.location.href='<?= Yii::$service->url->getUrl('catalog/reviewproduct/add',['spu'=>$spu,'_id'=>$_id]); ?>'"><span><span><?= Yii::$service->page->translate->__('Write a Customer Review'); ?></span></span></button>
<span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
<a lehref="#" class="review_star review_star_<?= round($reviw_rate_star_average) ?>" onclick="javascript:return false;"></a>
<b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
<span class="lineBlock"><?= Yii::$service->page->translate->__('based on {review_count} Customer Reviews',['review_count' => $review_count]) ?></span>
</div>
</div>
<div class="clear"></div>
<div class="lbBox writeRiviewTitle">
<ul class="lineBlock proportionStars">
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_5'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_5'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_4'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_4'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_3'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_3'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_2'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_2'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_1'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_1'] ?>%</span>
</li>
</ul>
<div class="lineBlock writeRiviewBtn">
<button type="submit" title="Save" class="button btn btn-primary addreview" onclick="javascrtpt:window.location.href='<?= Yii::$service->url->getUrl('catalog/reviewproduct/add',['spu'=>$spu,'_id'=>$_id]); ?>'"><span><span><?= Yii::$service->page->translate->__('Write a Customer Review'); ?></span></span></button>
</div>
</div>
<div class="product-Reviews_top">
......
......@@ -462,4 +462,14 @@ return [
'Please contact us if you think this is a server error, Thank you.' => '如果您认为这是服务器错误,请与我们联系,谢谢。',
'Bring me back Home' => '带我去首页',
'Average Rating' => '平均评分',
'based on {review_count} Customer Reviews' => '基于{review_count}条客户评论',
'5 stars' => '5星',
'4 stars' => '4星',
'3 stars' => '3星',
'2 stars' => '2星',
'1 stars' => '1星',
'Write a Customer Review' => '填写用户评论',
];
......@@ -58,8 +58,7 @@ class Index
}
$reviewHelper = $this->_reviewHelper;
$reviewHelper::initReviewConfig();
$ReviewAndStarCount = $reviewHelper::getReviewAndStarCount($this->_product);
list($review_count, $reviw_rate_star_average) = $ReviewAndStarCount;
list($review_count, $reviw_rate_star_average, $reviw_rate_star_info) = $reviewHelper::getReviewAndStarCount($this->_product);
$this->filterProductImg($this->_product['image']);
$groupAttrInfo = Yii::$service->product->getGroupAttrInfo($this->_product['attr_group']);
$groupAttrArr = $this->getGroupAttrArr($groupAttrInfo);
......@@ -74,6 +73,7 @@ class Index
'attr_group' => $this->_product['attr_group'],
'review_count' => $review_count,
'reviw_rate_star_average' => $reviw_rate_star_average,
'reviw_rate_star_info' => $reviw_rate_star_info,
'price_info' => $this->getProductPriceInfo(),
'tier_price' => $this->_product['tier_price'],
'media_size' => [
......
......@@ -101,13 +101,14 @@ class Lists
$coll = $data['coll'];
$reviewHelper = $this->_reviewHelper;
$ReviewAndStarCount = $reviewHelper::getReviewAndStarCount($product);
list($review_count, $reviw_rate_star_average) = $ReviewAndStarCount;
list($review_count, $reviw_rate_star_average, $reviw_rate_star_info) = $ReviewAndStarCount;
return [
'_id' => $this->product_id,
'spu' => $this->spu,
'review_count' => $review_count,
'reviw_rate_star_average' => $reviw_rate_star_average,
'reviw_rate_star_info' => $reviw_rate_star_info,
'pageToolBar' => $pageToolBar,
'coll' => $coll,
'noActiveStatus' => Yii::$service->product->review->noActiveStatus(),
......
......@@ -17,7 +17,7 @@ use Yii;
*/
class Review
{
// 初始化当前apphtml5的设置,覆盖service的初始设置。
// 初始化当前appfront的设置,覆盖service的初始设置。
public static function initReviewConfig()
{
// 用当前的配置,覆盖service的公用配置。
......@@ -40,11 +40,13 @@ class Review
// 这个是是否通过语言进行过滤评论,可以通过上面的函数 self::initReviewConfig进行初始化,
// 也就是通过当前模块的配置,来覆盖service的配置
$filterByLang = Yii::$service->product->review->filterByLang;
if ($filterByLang) {
$langCode = Yii::$service->store->currentLangCode;
if ($langCode) {
$a = Yii::$service->fecshoplang->getLangAttrName('review_count_lang', $langCode);
$b = Yii::$service->fecshoplang->getLangAttrName('reviw_rate_star_average_lang', $langCode);
$c = Yii::$service->fecshoplang->getLangAttrName('reviw_rate_star_info_lang', $langCode);
$review_count_lang = 0;
if (isset($product['review_count_lang'][$a])) {
$review_count_lang = $product['review_count_lang'][$a];
......@@ -55,14 +57,39 @@ class Review
$reviw_rate_star_average_lang = $product['reviw_rate_star_average_lang'][$b];
$reviw_rate_star_average_lang = $reviw_rate_star_average_lang ? $reviw_rate_star_average_lang : 0;
}
return [$review_count_lang, $reviw_rate_star_average_lang];
$reviw_rate_star_info_lang = [];
if (isset($product['reviw_rate_star_info_lang'][$c])) {
$reviw_rate_star_info_lang = $product['reviw_rate_star_info_lang'][$c];
$reviw_rate_star_info_lang = $reviw_rate_star_info_lang ? $reviw_rate_star_info_lang : [];
}
$reviw_rate_star_info = self::getRateStarInfo($review_count_lang, $reviw_rate_star_info_lang);
return [$review_count_lang, $reviw_rate_star_average_lang, $reviw_rate_star_info];
}
} else {
$review_count = $product['review_count'] ? $product['review_count'] : 0;
$reviw_rate_star_average = $product['reviw_rate_star_average'] ? $product['reviw_rate_star_average'] : 0;
return [$review_count, $reviw_rate_star_average];
$reviw_rate_star_info = $product['reviw_rate_star_info'] ? $product['reviw_rate_star_info'] : [];
$reviw_rate_star_info = self::getRateStarInfo($review_count, $reviw_rate_star_info);
return [$review_count, $reviw_rate_star_average, $reviw_rate_star_info];
}
}
public static function getRateStarInfo($review_count, $reviw_rate_star_info){
if (empty($reviw_rate_star_info)) {
$reviw_rate_star_info['star_0'] = 0;
$reviw_rate_star_info['star_1'] = 0;
$reviw_rate_star_info['star_2'] = 0;
$reviw_rate_star_info['star_3'] = 0;
$reviw_rate_star_info['star_4'] = 0;
$reviw_rate_star_info['star_5'] = 0;
}
foreach ($reviw_rate_star_info as $k => $v) {
if ($review_count) {
$reviw_rate_star_info[$k] = ceil($v / $review_count * 1000) / 10;
}
}
return $reviw_rate_star_info;
}
}
......@@ -1052,6 +1052,73 @@ width: 80%;}
.averageWarp{
margin-top: 10px;
}
.averageWarp span, .averageWarp b{float:left;display:block;margin-right:20px;}
.averageWarp a{float:left;margin-right:10px;}
.lbBox {
font-size: 0;
*word-spacing: -1px;
}
.lineBlock {
display: inline-block;
zoom: 1;
padding-left:0;
*display: inline;
font-size: 13px;
letter-spacing: normal;
word-spacing: normal;
vertical-align: top;
}
.pro_commit .writeRiviewTitle, .writeLeft .writeRiviewTitle {
margin: 15px 0;
padding-bottom: 20px;
border-bottom: 1px solid #e2e2e2;
}
.pro_commit .writeRiviewTitle .proportionStars li, .writeLeft .writeRiviewTitle .proportionStars li {
margin-bottom: 10px;
}
.fz_blue, .link {
color: #4d82b8;
}
.pro_commit .writeRiviewTitle .proportionStars .proportionBox, .writeLeft .writeRiviewTitle .proportionStars .proportionBox {
background-color: #e6e6e6;
width: 145px;
height: 15px;
position: relative;
margin-left: 10px;
margin-right: 10px;
border: 1px solid #c4c4c4;
}
.pro_commit .writeRiviewTitle .proportionStars .proportionBox > div::before, .writeLeft .writeRiviewTitle .proportionStars .proportionBox > div::before {
background-color: rgba(255,255,255,.25);
content: "";
display: block;
font-size: 0;
height: 1px;
margin: 1px;
}
.pro_commit .writeRiviewTitle .proportionStars .proportionBox > div, .writeLeft .writeRiviewTitle .proportionStars .proportionBox > div {
position: absolute;
left: 0;
top: 0;
height: 15px;
background-color: #f90;
font-size: 0;
box-shadow: 0 0 0 1px rgba(0,0,0,.25) inset,0 -1px 0 rgba(0,0,0,.05) inset;
width: 0;
transition: width .5s ease 0s;
}
.pro_commit .writeRiviewTitle .writeRiviewBtn, .writeLeft .writeRiviewTitle .writeRiviewBtn {
width: 770px;
margin-left:150px;
}
.buttons-row{padding:0 0.6rem;}
......
......@@ -33,8 +33,8 @@
<div class="rbc_cold">
<span>
<span class="average_rating"><?= Yii::$service->page->translate->__('Average rating'); ?> :</span>
<span class="review_star review_star_<?= $reviw_rate_star_average ?>" style="font-weight:bold;" itemprop="average"></span>
<span class="review_star review_star_<?= round($reviw_rate_star_average) ?>" style="font-weight:bold;" itemprop="average"></span>
<a external rel="nofollow" href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>">
(<span itemprop="count"><?= $review_count ?> <?= Yii::$service->page->translate->__('reviews'); ?></span>)
</a>
......@@ -187,8 +187,10 @@
'view' => 'catalog/product/index/review.php',
'product_id' => $_id,
'spu' => $spu,
];
];
$reviewParam['reviw_rate_star_info'] = $reviw_rate_star_info;
$reviewParam['review_count'] = $review_count;
$reviewParam['reviw_rate_star_average'] = $reviw_rate_star_average;
?>
<?= Yii::$service->page->widget->render($reviewView,$reviewParam); ?>
</div>
......
......@@ -7,10 +7,72 @@
* @license http://www.fecshop.com/license/
*/
?>
<?php
$reviw_rate_star_info = $parentThis['reviw_rate_star_info'];
$review_count = $parentThis['review_count'];
$reviw_rate_star_average = $parentThis['reviw_rate_star_average'];
//var_dump($reviw_rate_star_info);
?>
<div class="product-Reviews">
<div id="pic_list_2" class="scroll_horizontal">
<div class="clear"></div>
<div class="box">
<div class="box pro_commit">
<div class="averageWarp">
<span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
<a lehref="#" class="review_star review_star_<?= round($reviw_rate_star_average) ?>" onclick="javascript:return false;"></a>
<b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
</div>
<div class="clear"></div>
<div class="lbBox writeRiviewTitle">
<ul class="lineBlock proportionStars">
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_5'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_5'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_4'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_4'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_3'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_3'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_2'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_2'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_1'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_1'] ?>%</span>
</li>
</ul>
<p class="buttons-row">
<a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/add',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
<?= Yii::$service->page->translate->__('Add Review'); ?>
</a>
<a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
<?= Yii::$service->page->translate->__('View All Review'); ?>(<?= $review_count; ?>)
</a>
</p>
</div>
<div class="product-Reviews_top">
<?php if(is_array($coll) && !empty($coll)): ?>
......@@ -48,14 +110,7 @@
</div>
<div class="clear"></div>
<p class="buttons-row">
<a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/add',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
<?= Yii::$service->page->translate->__('Add Review'); ?>
</a>
<a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
<?= Yii::$service->page->translate->__('View All Review'); ?>(<?= $review_count; ?>)
</a>
</p>
</div>
</div>
</div>
\ No newline at end of file
......@@ -49,7 +49,7 @@
<div class="rbc_cold">
<span>
<span class="average_rating"><?= Yii::$service->page->translate->__('Average rating :');?></span>
<span class="review_star review_star_<?= $reviw_rate_star_average ?>" style="font-weight:bold;" itemprop="average"></span>
<span class="review_star review_star_<?= round($reviw_rate_star_average) ?>" style="font-weight:bold;" itemprop="average"></span>
<a external rel="nofollow" href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>">
(<span itemprop="count"><?= $review_count ?> <?= Yii::$service->page->translate->__('reviews');?></span>)
......@@ -76,44 +76,89 @@
</div>
<div class="clear"></div>
</div>
<div class="product-reviews">
<div class="product-reviews pro_commit">
<div class="clear"></div>
<div class="review_title">
<a external href="#"><?= Yii::$service->page->translate->__('Product Review');?></a>
</div>
<?php if(is_array($coll) && !empty($coll)): ?>
<?php foreach($coll as $one): ?>
<div class="card">
<div class="fec-card-header">
<?= $one['summary'] ?>
</div>
<div class="fec-card-content">
<div class="fec-card-content-inner">
<div class="review-content">
<?= $one['review_content'] ?>
</div>
<div class="moderation">
<?php if($one['status'] == $noActiveStatus): ?>
<?= Yii::$service->page->translate->__('Your Review is awaiting moderation...');?>
<?php elseif($one['status'] == $refuseStatus): ?>
<?= Yii::$service->page->translate->__('Your Review is refused.');?>
<?php endif; ?>
</div>
<div class="review_list_remark">
<p><?= Yii::$service->page->translate->__('By');?> <?= $one['name'] ?></p>
<span><?= $one['review_date'] ? date('Y-m-d H:i:s',$one['review_date']) : '' ?></span>
</div>
</div>
</div>
<div class="fec-card-footer">
<a href="#" class="review_star review_star_<?= $one['rate_star'] ?>" onclick="javascript:return false;"></a>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
<div class="averageWarp">
<span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
<b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
</div>
<div class="clear"></div>
<div class="lbBox writeRiviewTitle">
<ul class="lineBlock proportionStars">
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_5'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_5'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_4'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_4'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_3'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_3'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_2'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_2'] ?>%</span>
</li>
<li class="lbBox">
<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
<div class="lineBlock proportionBox">
<div style="width: <?= $reviw_rate_star_info['star_1'] ?>%"> </div>
</div>
<span class="lineBlock"><?= $reviw_rate_star_info['star_1'] ?>%</span>
</li>
</ul>
</div>
<?php if(is_array($coll) && !empty($coll)): ?>
<?php foreach($coll as $one): ?>
<div class="card">
<div class="fec-card-header">
<?= $one['summary'] ?>
</div>
<div class="fec-card-content">
<div class="fec-card-content-inner">
<div class="review-content">
<?= $one['review_content'] ?>
</div>
<div class="moderation">
<?php if($one['status'] == $noActiveStatus): ?>
<?= Yii::$service->page->translate->__('Your Review is awaiting moderation...');?>
<?php elseif($one['status'] == $refuseStatus): ?>
<?= Yii::$service->page->translate->__('Your Review is refused.');?>
<?php endif; ?>
</div>
<div class="review_list_remark">
<p><?= Yii::$service->page->translate->__('By');?> <?= $one['name'] ?></p>
<span><?= $one['review_date'] ? date('Y-m-d H:i:s',$one['review_date']) : '' ?></span>
</div>
</div>
</div>
<div class="fec-card-footer">
<a href="#" class="review_star review_star_<?= $one['rate_star'] ?>" onclick="javascript:return false;"></a>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
<?php if($pageToolBar): ?>
<div class="pageToolbar">
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册