제로보드의 커피님이 공개하셨던 인기도 그누에 적용하기 > 그누4 팁자료실

그누4 팁자료실

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

제로보드의 커피님이 공개하셨던 인기도 그누에 적용하기 정보

제로보드의 커피님이 공개하셨던 인기도 그누에 적용하기

첨부파일

popular_info.php (4.0K) 24회 다운로드 2009-05-23 19:14:43
friend_add.php (1.7K) 7회 다운로드 2009-05-23 19:14:43
memo_frmember.php (3.9K) 5회 다운로드 2009-05-23 19:14:43

본문

오래전 제로보드 사용할 때 커피님이 공개하셨던 인기도를 그누보드에 적용해 보았습니다.


그누보드에 오래전 제로보드에서 사용하던 커피님의 인기도 적용하기
1. 첨부파일 중
     popular_info.php 파일을 그누보드 풀더에
     popular.gif 파일을 그누보드/images 폴더에 업로드한다.

  (1) g4_member 테이블에 popular 필드 추가 [int(20)]

  (2) sql 쿼리 실행하여 기존 개인정보 공개한 회원에게 인기도 50 주기
       update g4_member set popular=popular+50 where mb_open = '1';

  (3) 회원정보수정 후에
그누/bbs/register_form_update.php 파일에서

// 회원가입 포인트 부여

찾아서 그 위쪽에 아래 코드 삽입


// 인기도를 위한 코드 + 정보공개 포인트 부여
  $opencost ="100";
if($mb_open == '0') { // 비공개일때
mysql_query("update $g4[member_table] set popular=(popular-50) where mb_id='$mb_id'");
insert_point($mb_id, $opencost*(-1), "회원정보 비공 $opencost 포인트 줄어듬", '@member', $mb_id, '정보공개');
}
// 인기도를 위한 코드 + 정보공개 포인트 부여

좀 더 아래쪽 수정 부분에 있는 아래 선 안의 코드를 찾아 그 바로 위에 추가한다.
-------------------------------------------------------------------
   $sql = " update $g4[member_table]
-------------------------------------------------------------------

 // 인기도를 위한 코드
  $opendata=mysql_fetch_array(mysql_query("select mb_open from $g4[member_table] where mb_id='$_POST[mb_id]'"));
  $oldopeninfo = $opendata[mb_open];
  if($mb_open != $oldopeninfo)
  {
  $opencost1 = "100";
    if($mb_open == '0') {
@mysql_query("update $g4[member_table] set popular=(popular-50) where mb_id='$_POST[mb_id]'");
insert_point($member[mb_id], $opencost1*(-1), " 회원정보 비공개로 $opencost1 포인트 압수", '', '', '');
    } else if($mb_open == '1') {
@mysql_query("update $g4[member_table] set popular=(popular+50) where mb_id='$_POST[mb_id]'");
insert_point($member[mb_id], $opencost1, " 회원정보 공개로 $opencost1 포인트 부여", '', '', '');
    }
  }
  // 인기도를 위한 코드

  (4) 나의정보 1회 조회당    + 1
그누보드/bbs/profile.php 파일의 적당한 곳에 아래 소스 추가

// 인기도 업
if($mb[mb_id] != $member[mb_id])
{
      $s = $code;
      if (!get_session($s)){
      @mysql_query("update $g4[member_table] set popular=(popular+1) where mb_id='$mb[mb_id]'") or mysql_error();
      set_session($s, TRUE);
                    }
}

세션이 없는 경우 세션을 만들어서 중복해서 인기도 업 시킬 수 없게 한다고 했는데
세션이나 쿠키가 저에겐 너무 어려워서 제대로 했는지 잘 모르겠네요.
혹시 오류가 보여서 수정하신 분은 여기 댓글로 꼭 좀 알려주시면 감사하겠습니다..

  (5) 미니돌 아바타를 사용하는 홈피
    + 선물을 보낼 경우   + 10
    + 선물을 받을 경우   + 20
    미니돌 아바타 파일 avatar_ok.php수정
        @mysql_query("update g4_member set mb_point=mb_point-".$c_buy_p." where mb_id = '$avatar_id'") or error("포인트 저장시 에러가 발생했습니다".mysql_error());
?>
<script>
alert("선물 하였습니다.^^*");

이런 곳이 2 군데 있을 것인데 이 2 곳을 찾아 

        @mysql_query("update g4_member set mb_point=mb_point-".$c_buy_p." where mb_id = '$avatar_id'") or error("포인트 저장시 에러가 발생했습니다".mysql_error());

이 아래에 다음 코드를 추가한다.


        // 인기도 업
        @mysql_query("update g4_member set popular = (popular+10) where mb_id = '$avatar_id'") or error("자신의 인기도 업시 에러가 발생했습니다".mysql_error());
        @mysql_query("update g4_member set popular = (popular+20) where mb_id = '$user_id'") or error("선물받을 친구 인기도 업시 에러가 발생했습니다".mysql_error());


    (6) 친구등록 (동성일 때 +20, 이성일 때 +40)

    /bbs/friend_add.php 파일 수정함.
    member 스킨에 추가한 친구 관련 파일 memo_frmember.php 파일 수정함.

    ( 저희 홈의 경우 헐랭이님이 공개하신 친구팬 소스를 살짝 수정해서 사용중임.)

    위 파일의 수정본은 첨부파일로 올려놓겠으니 참고하여 사용하시고, 절대 기존 파일에 덮어씌우지 마시길.....


2. 인기도 나타내기
  ① 회원정보 보기에 나타내기
회원정보 보기 화면
   ㉠ member스킨 파일 중 profile.skin.php 수정

윗부분 적당한 곳에 아래 소스 추가
  <a href='#' onclick="javascript:window.open('<?=$g4[path]?>/popular_info.php', 'popular', 'width=400,height=380,toolbars=no,scrollbars=no')" onMouseOver="window.status=('인기도란?'); return true;"><img src="<?=$g4[path]?>/images/popular.gif" align="absmiddle">  인기도 : <?=$mb[popular]?>

  ② 미니필 파일 수정 minifeel/myhome.php 파일 수정

  기본정보 옆 쯤에 추가

<td nowrap width=*>
 <a href='#' onclick="javascript:window.open('<?=$g4[path]?>/popular_info.php', 'popular', 'width=400,height=380,toolbars=no,scrollbars=no')" onMouseOver="window.status=('인기도란?'); return true;">
<img src="<?=$g4[path]?>/images/popular.gif" align="absmiddle" border=0 style='margin : 0 0 2 0'> 인기도 : <?=$mb_popular?>
</td>

  ③ 게시판 내용 보기에 나타내기

   ㉠ 게시판 스킨 파일 view.skin.php 수정합니다
게시물 등록자 이름 뒤에 인기도 코드 넣는다.
<?=$view[name]?>

<?
// 게시물 보기에서 인기도 출력
$popview=mysql_fetch_array(mysql_query("select popular from $g4[member_table] where mb_id='{$view[mb_id]}'"));
$popular_show = " <a href='#' onclick=\"javascript:window.open('$g4[path]/popular_info.php', 'popular', 'width=400,height=380,toolbars=no,scrollbars=no')\" onMouseOver=\"window.status=('인기도란?'); return true;\"><img src='$g4[path]/images/popular.gif' align=bottom border=0> 인기도 : $popview[popular]</a>  ";
?>
<?=$popular_show?>



  ④ 아웃로긴 스킨에 나타내는 방법

외부로그인 스킨 파일 중 outlogin.skin.2.php 파일을 열어 접속자이름(별명) 뒤에 아래 소스를 추가한다.


<?
// 게시물 보기에서 인기도 출력 함수
$popview=mysql_fetch_array(mysql_query("select popular from $g4[member_table] where mb_id='{$member[mb_id]}'"));
$popular_show = "<a href='#' onclick=\"javascript:window.open('$g4[path]/popular_info.php', 'popular', 'width=400,height=380,toolbars=no,scrollbars=no')\" onMouseOver=\"window.status=('인기도란?'); return true;\"><img src='$g4[path]/images/popular.gif' align=bottom border=0>인기도 $popview[popular]</a></font>";
?>
<?=$popular_show?>


정보 비공개 시에 인기도와 포인트 감하는 부분과
다른 회원의 프로필을 볼 때 해당 회원의 인기도가 +1 되도록하는 부분 역시
제가 쿠키를 잘 몰라서 반복적으로 페이지를 접근해도 하루 1번만 인기도 +1 되는지 잘 모르겠습니다.

혹시 잘 못된 부분 찾으시면 여기 게시물을 통해 공개해주시면 감사드리겠습니다.
추천
4

댓글 9개

좌측 메뉴에 사용된 미니돌아바타 외의 기본 이미지는 녹색용의 전설 이라는 텍스트 머드게임에서 따온 겁니다 ㅎㅎ
외부로그인스킨은 스킨자료실에 올려두었습니다.
순수한꼬마님...  님이 말씀하시는 좌측메뉴란게 아웃로그인 스킨이 아닌 그 아래 메뉴 말씀이셨군요..
저는 그 위 외부로그인 스킨 말씀하시는줄 알았네요. 실수^^;;

외부로그인 스킨 아래 메뉴는 패션님이 만드셨나 보군요..
스킨자료실에서 받아서 사용해놓고는 제작자 분을 기억 못했네요.
패션님 죄송합니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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