추천, 비추천, 코멘트, 페이지뷰로 인기도 산출하기
제가 임의대로 만들어본것이니 많은 조언 부탁합니다.
수치는 절대적인 것이 아니라 사이트 특성을 고려하여 적용하시면 됩니다.
인기도의 총점은 100점으로 잡습니다.
추천 한개당 포인트는 100 입니다. 이것은 100번의 페이지뷰가 발생하면 평균적으로 한번 추천이 달린다는 의미입니다.
$p_good = 100;
비추천 한개당 포인트는 -110 입니다. 이것은 추천과 같은 비율로 따지지만, 10프로를 페널티로 준것입니다.
$p_nogood = $p_good * (-1.1);
코멘트 한개당 포인트는 30입니다. 이것은 30번의 페이지뷰가 발생하면 평균적으로 한번 코멘트가 달린다는 의미입니다.
$p_comment = 30;
페이지뷰는 그냥 1입니다.
인기도 100점을 다음 세가지 방식으로 나누어서 합산합니다.
1. 50점 :
전체적인 인기도를 나타내는 것입니다. 이것은 시간이 경과될수록 계속 증가할수 있는 값입니다.
50점 만점의 포인트는 5000 입니다.
페이지뷰가 많이 일어나는 사이트이면 수치를 더올리고,
페이지뷰가 적게 일어나는 사이트는 수치를 줄이면 됩니다.
$p_total = 5000;
공식은
$favor_point[0] = ceil(($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood'] + $p_comment * $list[$i]['wr_comment'] + $list[$i]['wr_hit']) / $p_total * 50);
if ($favor_point[0] > 50) $favor_point[0] = 50;//50점이 넘으면 50점으로 고정
else if ($favor_point[0] < 0) $favor_point[0] = 0;//비추천이 많아 음수가 나오면 0으로 고정
2. 25점 :
페이지뷰에 대한 추천비율을 점수로 나타내는 것입니다.
이것은 시간의 증가와 관계없이 증감할수 있습니다. 일반적으로 감소하는것이 정상입니다.
이것은 어떻게 계산하더라도 25에 가까워질수는 있지만 25를 넘을수는 없습니다.
공식은
if ($list[$i]['wr_good'] > 0 && $list[$i]['wr_good'] > $list[$i]['wr_nogood']) {//추천 점수는 추천이 1개 이상 이고 추천이 비추천보다 많을 경우에만 점수계산
$favor_point[1] = ceil((1 - ($list[$i]['wr_hit'] / ($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood']))) * 25);
}
else {
$favor_point[1] = 0;
}
if ($favor_point[1] < 0) $favor_point[1] = 0;
3. 25점 :
페이지뷰에 대한 코멘트비율을 점수로 나타내는 것입니다.
이것은 시간의 증가와 관계없이 증감할수 있습니다. 일반적으로 감소하는것이 정상입니다.
이것은 어떻게 계산하더라도 25에 가까워질수는 있지만 25를 넘을수는 없습니다.
공식은
if ($list[$i]['wr_comment'] > 0) {//코멘트가 하나 이상 있을때만 점수 계산
$favor_point[2] = ceil((1 - ($list[$i]['wr_hit'] / ($p_comment * $list[$i]['wr_comment']))) * 25);
}
else {
$favor_point[2] = 0;
}
if ($favor_point[2] < 0) $favor_point[2] = 0;
인기도 총점은
$favor_point['all'] = $favor_point[0] + $favor_point[1] + $favor_point[2];
이렇게 구해진 총점을
100점에 몇프로인가를 아이콘이나 그래프 같은것으로 나타내면 됩니다.
수치는 절대적인 것이 아니라 사이트 특성을 고려하여 적용하시면 됩니다.
인기도의 총점은 100점으로 잡습니다.
추천 한개당 포인트는 100 입니다. 이것은 100번의 페이지뷰가 발생하면 평균적으로 한번 추천이 달린다는 의미입니다.
$p_good = 100;
비추천 한개당 포인트는 -110 입니다. 이것은 추천과 같은 비율로 따지지만, 10프로를 페널티로 준것입니다.
$p_nogood = $p_good * (-1.1);
코멘트 한개당 포인트는 30입니다. 이것은 30번의 페이지뷰가 발생하면 평균적으로 한번 코멘트가 달린다는 의미입니다.
$p_comment = 30;
페이지뷰는 그냥 1입니다.
인기도 100점을 다음 세가지 방식으로 나누어서 합산합니다.
1. 50점 :
전체적인 인기도를 나타내는 것입니다. 이것은 시간이 경과될수록 계속 증가할수 있는 값입니다.
50점 만점의 포인트는 5000 입니다.
페이지뷰가 많이 일어나는 사이트이면 수치를 더올리고,
페이지뷰가 적게 일어나는 사이트는 수치를 줄이면 됩니다.
$p_total = 5000;
공식은
$favor_point[0] = ceil(($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood'] + $p_comment * $list[$i]['wr_comment'] + $list[$i]['wr_hit']) / $p_total * 50);
if ($favor_point[0] > 50) $favor_point[0] = 50;//50점이 넘으면 50점으로 고정
else if ($favor_point[0] < 0) $favor_point[0] = 0;//비추천이 많아 음수가 나오면 0으로 고정
2. 25점 :
페이지뷰에 대한 추천비율을 점수로 나타내는 것입니다.
이것은 시간의 증가와 관계없이 증감할수 있습니다. 일반적으로 감소하는것이 정상입니다.
이것은 어떻게 계산하더라도 25에 가까워질수는 있지만 25를 넘을수는 없습니다.
공식은
if ($list[$i]['wr_good'] > 0 && $list[$i]['wr_good'] > $list[$i]['wr_nogood']) {//추천 점수는 추천이 1개 이상 이고 추천이 비추천보다 많을 경우에만 점수계산
$favor_point[1] = ceil((1 - ($list[$i]['wr_hit'] / ($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood']))) * 25);
}
else {
$favor_point[1] = 0;
}
if ($favor_point[1] < 0) $favor_point[1] = 0;
3. 25점 :
페이지뷰에 대한 코멘트비율을 점수로 나타내는 것입니다.
이것은 시간의 증가와 관계없이 증감할수 있습니다. 일반적으로 감소하는것이 정상입니다.
이것은 어떻게 계산하더라도 25에 가까워질수는 있지만 25를 넘을수는 없습니다.
공식은
if ($list[$i]['wr_comment'] > 0) {//코멘트가 하나 이상 있을때만 점수 계산
$favor_point[2] = ceil((1 - ($list[$i]['wr_hit'] / ($p_comment * $list[$i]['wr_comment']))) * 25);
}
else {
$favor_point[2] = 0;
}
if ($favor_point[2] < 0) $favor_point[2] = 0;
인기도 총점은
$favor_point['all'] = $favor_point[0] + $favor_point[1] + $favor_point[2];
이렇게 구해진 총점을
100점에 몇프로인가를 아이콘이나 그래프 같은것으로 나타내면 됩니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 10개
좋은 팁 감사합니다......^^
다른 분 스킨 이미지 사용햇습니다.
별표를 뿌리는 방법도 같은 방법으로 했습니다
급조했습니다.
http://8bong.com/bbs/board.php?bo_table=humor_borad
스킨으로 만들어서 올려야 관심이 생길까요?
수고하셨습니다.......
일단 제홈에도 한번 적용을 고려해 보아야 겠습니다...^^
$p_good = 100;
$p_nogood = $p_good * (-1.1);
$p_comment = 30;
$p_total = 5000;
//일반적인 점수
$favor_point[0] = ceil(($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood'] + $p_comment * $list[$i]['wr_comment'] + $list[$i]['wr_hit']) / $p_total * 50);
if ($favor_point[0] > 50) $favor_point[0] = 50;//50점이 넘으면 50점으로 고정
else if ($favor_point[0] < 0) $favor_point[0] = 0;//비추천이 많아 음수가 나오면 0으로 고정
//추천점수
if ($list[$i]['wr_good'] > 0 || $list[$i]['wr_good'] > $list[$i]['wr_nogood']) {//추천 점수는 추천이 1개 이상 있거나 추천이 비추천보다 많을 경우에만 점수계산
$favor_point[1] = ceil((1 - ($list[$i]['wr_hit'] / ($p_good * $list[$i]['wr_good'] + $p_nogood * $list[$i]['wr_nogood']))) * 25);
}
else {
$favor_point[1] = 0;
}
if ($favor_point[1] < 0) $favor_point[1] = 0;
//코멘트 점수
if ($list[$i]['wr_comment'] > 0) {//코멘트가 하나 이상 있을때만 점수 계산
$favor_point[2] = ceil((1 - ($list[$i]['wr_hit'] / $p_comment * $list[$i]['wr_comment'])) * 25);
}
else {
$favor_point[2] = 0;
}
if ($favor_point[2] < 0) $favor_point[2] = 0;
//토탈 점수
$favor_point['all'] = $favor_point[0] + $favor_point[1] + $favor_point[2];
요렇게 넣고요
인기도를 출력하는 부분에
<td>
<table cellpadding=0 cellspacing=0 border=0 width=81 height=13 background='<?=$board_skin_path?>/img/star_s_bg.gif' title='<?=$favor_point[0]?> <?=$favor_point[1]?> <?=$favor_point[2]?> <?=$favor_point['all']?>%' style='margin: 2 0 2 0;'>
<tr>
<td>
<table cellpadding=0 cellspacing=0 border=0 width=<?=$favor_point['all']?>% height=13 background='<?=$board_skin_path?>/img/star_s.gif'><tr><td></td></tr></table>
</td>
</tr>
</table>
</td>
별표 아이콘은
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=43740
의
Skyknight 님 스킨의 아이콘과 출력방식을 사용하였습니다.
시간내서 열심히 살펴 봐야겠습니다... 감사합니다...
일례로 '25에 가까울 수 있으나 그것(25)을 초과할 수 없다'를 들 수 있겠습니다.
그누보드를 기반으로 한 커뮤니티 또는 링크 또는 검색 서비스를 수행하는
소규모 홈페이지에서 정말 효율적으로 사용될 수 있을 것 같습니다.
자연스레 즐긴다는 측면도 있겠지만,
자연스러운 분위기 가운데 은연중에는 어떠한 콘텐츠나 포스트 관해,
나름대로의 경쟁심리가 내재되었다고 볼 수도 있기 때문입니다.
누구의 게시물이 호평을 받고 있는가?!
누구의 이미지가 선호되고 있는가?!
등등...
언젠간 소스 이해할 날이 오겠지요;