레벨에 따라 추천/비추천 사용하기 정보
레벨에 따라 추천/비추천 사용하기본문
현재 추천은 [사용/비사용] 두가지 옵션만 이루어져 있고 비회원은 사용하지 못하게 되어있습니다.
[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으로 수정해야할듯욤