레벨에 따라 추천/비추천 사용하기 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

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

레벨에 따라 추천/비추천 사용하기 정보

레벨에 따라 추천/비추천 사용하기

본문

현재 추천은 [사용/비사용] 두가지 옵션만 이루어져 있고 비회원은 사용하지 못하게 되어있습니다.

[bo_use_good] 옵션을 이용하여 레벨을 선택할 수 있게 해보았습니다.

----------------------------------------------------------------------------------

1. adm/board_form.php 파일을 수정합니다.

추천 옵션 필드를 아래 레벨 선택 필드로 바꿔줍니다.

추천 이전 필드 : <input type=checkbox name=bo_use_good value='1' <?=$board[bo_use_good]?'checked':'';?>>

변경할 필드 :
          <select name=bo_use_good id='bo_use_secret'>
          <option value='0'>사용하지 않음
          <option value='1'>1레벨 
          <option value='2'>2레벨
          <option value='3'>3레벨
          <option value='4'>4레벨
          <option value='5'>5레벨
          <option value='6'>6레벨
          <option value='7'>7레벨
          <option value='8'>8레벨
          <option value='9'>9레벨
          <option value='10'>10레벨
        </select><script language='javascript'>document.getElementById('bo_use_good').value='<?=$board[bo_use_good]?>';</script>


비추천 이전 필드 : <input type=checkbox name=bo_use_nogood value='1' <?=$board[bo_use_nogood]?'checked':'';?>>

변경할 필드 :
          <select name=bo_use_nogood id='bo_use_secret'>
          <option value='0'>사용하지 않음
          <option value='1'>1레벨 
          <option value='2'>2레벨
          <option value='3'>3레벨
          <option value='4'>4레벨
          <option value='5'>5레벨
          <option value='6'>6레벨
          <option value='7'>7레벨
          <option value='8'>8레벨
          <option value='9'>9레벨
          <option value='10'>10레벨
        </select><script language='javascript'>document.getElementById('bo_use_nogood').value='<?=$board[bo_use_nogood]?>';</script>



로 바꿔줍니다.
그럼 체크박스 대신 레벨 선택 필드로 변경됩니다.

----------------------------------------------------------------------------------

2. bbs.view.php 파일을 수정합니다.


if ($member[mb_id]) {
    // 스크랩 링크
    $scrap_href = "./scrap_popin.php?bo_table=$bo_table&wr_id=$wr_id";

    // 추천 링크
    if ($board[bo_use_good])
        $good_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=good";

    // 비추천 링크
    if ($board[bo_use_nogood])
        $nogood_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=nogood";
}



이부분을 아래처럼 수정합니다.



if ($member[mb_id]) {
    // 스크랩 링크
    $scrap_href = "./scrap_popin.php?bo_table=$bo_table&wr_id=$wr_id";
}

    // 추천 링크
        if ($member[mb_level] >= $board[bo_use_good])
        $good_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=good";

    // 비추천 링크
        if ($member[mb_level] >= $board[bo_use_nogood]) 
        $nogood_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=nogood";




추천 버튼이 bo_use_good 에서 설정한 레벨값에 맞춰 보여집니다.

----------------------------------------------------------------------------------

3. bbs/good.php 파일을 수정합니다.

/*
if (!$is_member)
{
    $href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");

    echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
    exit;
}
*/

이 부분을 주석처리함으로서 비회원(레벨1)도 추천/비추천을 할 수 있게 만듭니다.


    if (!$board[bo_use_nogood] && $good == "nogood")
        alert_close("이 게시판은 비추천 기능을 사용하지 않습니다.")

    $sql = " select bg_flag from $g4[board_good_table]
              where bo_table = '$bo_table'
                and wr_id = '$wr_id'
                and mb_id = '$member[mb_id]'
                and bg_flag in ('good', 'nogood') ";
    $row = sql_fetch($sql);

    if ($row[bg_flag])

이부분을 아래처럼 수정합니다.


    if (!$board[bo_use_nogood] && $good == "nogood")
        alert_close("이 게시판은 비추천 기능을 사용하지 않습니다.");


if (!$is_member) {
    $sql = " select bg_flag from $g4[board_good_table]
              where bo_table = '$bo_table'
                and wr_id = '$wr_id'
                and mb_id = '$_SERVER[REMOTE_ADDR]'
                and bg_flag in ('good', 'nogood') ";
    $row = sql_fetch($sql);
} else {
    $sql = " select bg_flag from $g4[board_good_table]
              where bo_table = '$bo_table'
                and wr_id = '$wr_id'
                and mb_id = '$member[mb_id]'
                and bg_flag in ('good', 'nogood') ";
    $row = sql_fetch($sql);
}


    if ($row[bg_flag])

회원일 경우 회원 아이디로 중복투표를 방지하고 비회원일 경우 기록된 아이피를 확인하여 중복투표를 방지합니다.


마지막으로 아래 파일을 수정합니다.

수정전
// 내역 생성
        sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");


수정후

// 내역 생성
if (!$is_member) {
        sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$_SERVER[REMOTE_ADDR]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");
} else {
        sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");
}

투표할 때 회원은 아이디를 기록, 비회원은 아이피를 기록하여 비회원들의 중복투표를 방지할 수 있습니다.
----------------------------------------------------------------------------------

이렇게 변경하면 설정한 레벨값보다 낮은 회원이면 버튼이 보이지 않습니다.

추천
6

댓글 7개

너무너무 감사해요 앞으로도 좋은 정보 많이 부탁드릴께요 너무 고수이십니다
그런데 오타인거 같습니다
이부분을 아래처럼 수정합니다.



if ($member[mb_id]) {
    // 스크랩 링크
    $scrap_href = "./scrap_popin.php?bo_table=$bo_table&wr_id=$wr_id";
}

    // 추천 링크
        if ($member[mb_level] >= $board[bo_use_good])
        $good_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=nogood";

    // 비추천 링크
        if ($member[mb_level] >= $board[bo_use_nogood])
        $nogood_href = "./good.php?bo_table=$bo_table&wr_id=$wr_id&good=nogood";
저기서 추천 링크 마지막 부분 nogood 되어있어서 비추천만 되버립니다
good으로 수정해야할듯욤
필요한 자료 감사합니다. 저는 초보라서 그누4의 이 자료를 그누5에 적용해보려고 했는데, 너무 어렵네요. g4을 g5로 바뀌고 기존에 있는 코드이랑 비슷하게 했는데 작동이 안돼요. 혹시 중요한 바꿔야 할 부분 있는지 부탁드립니다. 아예 적용이 안되는지 알고 싶습니다.
적용이 되었습니다. 감사합니다. if ($member[mb_level] >= $board[bo_use_good])if ($member[mb_level] >= $board[bo_use_nogood]) 조건을 view.skin.php 파일에 추가해 줬습니다. 너무너무 감사합니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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