별점갤러리 스킨에서 점수에 따라 별점도 보여주려면.. 정보
그누보드 별점갤러리 스킨에서 점수에 따라 별점도 보여주려면..관련링크
본문
DDGR님의 별점갤러리를 이용해서 영화리뷰스킨을 만들려고 하는데요,,
DDGR님의 별점스킨에서는 리스트에서 평균점수만 보여주는데요, 여기에 네이버영화처럼 이 점수에따른 별점도 보여주게끔 수정을 해 주려고 합니다.
그러니깐 예를 들어
현재는 8.69 (5명 참여) <- 이런 식으로 보여주거든요. 그런데
만들고자 하는 예는 ★★★★☆ 8.69 (5명 참여) <- 이런 식으로 점수에 따른 별모양도 보여주려구요,
평균값($cmtpoint)이 1점이상 2점미만이라면 ☆
평균값($cmtpoint)이 2점이상 3점미만이라면 ★
평균값($cmtpoint)이 3점이상 4점미만이라면 ★☆
곰곰히 고민을 하다보니 이런식의 if문이 떠오르긴 했는데,,,제가 실력이 미흡해서 더이상의 진전이... 절~대 무리라는 결론이 나서.. 고수님들께 도움을 구합니다.
음.. 먼저 평가할 때 값을 입력받는 부분은
// 별점주기
<select name="wr_1" itemname="wr_1" style="width:90px;font-family:verdana;font-size:8pt;color:<?=$score_color?>">
<option value="0" selected>평가 안함 </option>
<option value="1" >☆ (1)</option>
<option value="2" >★ (2)</option>
<option value="3" >★☆ (3)</option>
<option value="4" >★★ (4)</option>
<option value="5" >★★☆ (5)</option>
<option value="6" >★★★ (6)</option>
<option value="7" >★★★☆ (7)</option>
<option value="8" >★★★★ (8)</option>
<option value="9" >★★★★☆ (9)</option>
<option value="10" >★★★★★ (10)</option>
</select>
이렇게 코멘트부분에서 wr_1번 필드를 이용해서 입력을 받구요,
이 값의 평균값을 구해서 보여주는 부분의 소스가 아래와 같구요.
<?
//코멘트로부터 포인트를 계산
$bbs_table = $cfg[write_table_prefix].$bo_table;
$cmtpoint=0;
$list[$i] = $list[$i][wr_id];
$cmtpoint ='0';
$totalcount = '0';
$userrating = '0';
$result2 = sql_query("select wr_1 from $bbs_table where wr_parent_id = $list[$i] and wr_comment > 0");
while($row2 = mysql_fetch_array($result2) ) {
$point=$row2[0];
if (intval($point)!=0) { //평균 계산시 점수를 준것들에만 반영
$cmtpoint=$cmtpoint + $point;
$totalcount++;
}
} //while
$userrating="(No Score)"; //평가한 사람이 없을경우
if ($totalcount!=0) {
$cmtpoint= $cmtpoint/$totalcount;
$cmtpoint= number_format($cmtpoint,2);
$userrating = "<font-size:9pt'>".$cmtpoint."($totalcount명 참여)</font>";
}
echo "$userrating";
?>
DDGR님의 별점스킨에서는 리스트에서 평균점수만 보여주는데요, 여기에 네이버영화처럼 이 점수에따른 별점도 보여주게끔 수정을 해 주려고 합니다.
그러니깐 예를 들어
현재는 8.69 (5명 참여) <- 이런 식으로 보여주거든요. 그런데
만들고자 하는 예는 ★★★★☆ 8.69 (5명 참여) <- 이런 식으로 점수에 따른 별모양도 보여주려구요,
평균값($cmtpoint)이 1점이상 2점미만이라면 ☆
평균값($cmtpoint)이 2점이상 3점미만이라면 ★
평균값($cmtpoint)이 3점이상 4점미만이라면 ★☆
곰곰히 고민을 하다보니 이런식의 if문이 떠오르긴 했는데,,,제가 실력이 미흡해서 더이상의 진전이... 절~대 무리라는 결론이 나서.. 고수님들께 도움을 구합니다.
음.. 먼저 평가할 때 값을 입력받는 부분은
// 별점주기
<select name="wr_1" itemname="wr_1" style="width:90px;font-family:verdana;font-size:8pt;color:<?=$score_color?>">
<option value="0" selected>평가 안함 </option>
<option value="1" >☆ (1)</option>
<option value="2" >★ (2)</option>
<option value="3" >★☆ (3)</option>
<option value="4" >★★ (4)</option>
<option value="5" >★★☆ (5)</option>
<option value="6" >★★★ (6)</option>
<option value="7" >★★★☆ (7)</option>
<option value="8" >★★★★ (8)</option>
<option value="9" >★★★★☆ (9)</option>
<option value="10" >★★★★★ (10)</option>
</select>
이렇게 코멘트부분에서 wr_1번 필드를 이용해서 입력을 받구요,
이 값의 평균값을 구해서 보여주는 부분의 소스가 아래와 같구요.
<?
//코멘트로부터 포인트를 계산
$bbs_table = $cfg[write_table_prefix].$bo_table;
$cmtpoint=0;
$list[$i] = $list[$i][wr_id];
$cmtpoint ='0';
$totalcount = '0';
$userrating = '0';
$result2 = sql_query("select wr_1 from $bbs_table where wr_parent_id = $list[$i] and wr_comment > 0");
while($row2 = mysql_fetch_array($result2) ) {
$point=$row2[0];
if (intval($point)!=0) { //평균 계산시 점수를 준것들에만 반영
$cmtpoint=$cmtpoint + $point;
$totalcount++;
}
} //while
$userrating="(No Score)"; //평가한 사람이 없을경우
if ($totalcount!=0) {
$cmtpoint= $cmtpoint/$totalcount;
$cmtpoint= number_format($cmtpoint,2);
$userrating = "<font-size:9pt'>".$cmtpoint."($totalcount명 참여)</font>";
}
echo "$userrating";
?>
댓글 전체
위의 $cmtpoint= number_format($cmtpoint,2);
밑에 아래와 같이 ★★★★★ 까지 넣어보세요.
if($cmtpoint =>1 && $cmtpoint < 2) {
$cmtpoint = "☆";
} elseif ($cmtpoint =>2 && $cmtpoint < 3) {
$cmtpoint = "★";
} elseif ($cmtpoint =>3 && $cmtpoint < 4) {
$cmtpoint = "★☆";
} elseif .....생략....
밑에 아래와 같이 ★★★★★ 까지 넣어보세요.
if($cmtpoint =>1 && $cmtpoint < 2) {
$cmtpoint = "☆";
} elseif ($cmtpoint =>2 && $cmtpoint < 3) {
$cmtpoint = "★";
} elseif ($cmtpoint =>3 && $cmtpoint < 4) {
$cmtpoint = "★☆";
} elseif .....생략....