추천, 비추천, 코멘트, 페이지뷰로 인기도 산출하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

추천, 비추천, 코멘트, 페이지뷰로 인기도 산출하기 정보

추천, 비추천, 코멘트, 페이지뷰로 인기도 산출하기

본문

제가 임의대로 만들어본것이니 많은 조언 부탁합니다.
수치는 절대적인 것이 아니라 사이트 특성을 고려하여 적용하시면 됩니다.



인기도의 총점은 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점에 몇프로인가를 아이콘이나 그래프 같은것으로 나타내면 됩니다.
추천
3

댓글 10개

음 일단 이미지가 없어서
다른 분 스킨 이미지 사용햇습니다.
별표를 뿌리는 방법도 같은 방법으로 했습니다
급조했습니다.

http://8bong.com/bbs/board.php?bo_table=humor_borad

스킨으로 만들어서 올려야 관심이 생길까요?
리스트스킨의 for문 바로 밑에



          $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)을 초과할 수 없다'를 들 수 있겠습니다.

그누보드를 기반으로 한 커뮤니티 또는 링크 또는 검색 서비스를 수행하는
소규모 홈페이지에서 정말 효율적으로 사용될 수 있을 것 같습니다.
커뮤니티를 표방한다면,
자연스레 즐긴다는 측면도 있겠지만,
자연스러운 분위기 가운데 은연중에는 어떠한 콘텐츠나 포스트 관해,
나름대로의 경쟁심리가 내재되었다고 볼 수도 있기 때문입니다.

누구의 게시물이 호평을 받고 있는가?!
누구의 이미지가 선호되고 있는가?!
등등...
전체 3,310 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT