별점갤러리 스킨에서 점수에 따라 별점도 보여주려면.. > 그누3질답

그누3질답

별점갤러리 스킨에서 점수에 따라 별점도 보여주려면.. 정보

그누보드 별점갤러리 스킨에서 점수에 따라 별점도 보여주려면..

본문

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";

?>
  • 복사

댓글 전체

위의 $cmtpoint= number_format($cmtpoint,2);

밑에 아래와 같이 ★★★★★ 까지 넣어보세요.


if($cmtpoint =>1 && $cmtpoint < 2) {
$cmtpoint = "☆";
} elseif ($cmtpoint =>2 && $cmtpoint < 3) {
$cmtpoint = "★";
} elseif ($cmtpoint =>3 && $cmtpoint < 4) {
$cmtpoint = "★☆";
} elseif .....생략....
© SIRSOFT
현재 페이지 제일 처음으로