추천/비추천 토글 소스 적용 채택완료
팁에 있는 그누보드 추천 취소 기능 만들기!! https://sir.kr/g5_tip/13384
를 보고 적용해봤는데요. 동작을 안하는군요.
제대로 적용해서 수정을 했는지좀 봐주십시요.
bbs/good.php
</p>
<p><?php
include_once('./_common.php');</p>
<p>run_event('bbs_good_before', $bo_table, $wr_id, $good);</p>
<p>@include_once($board_skin_path.'/good.head.skin.php');</p>
<p>// 자바스크립트 사용가능할 때
if(isset($_POST['js']) && $_POST['js'] === "on") {
$error = $count = "";</p>
<p> function print_result($error, $count<code>, $msg=''</code>)
{
echo '{ "error": "' . $error . '", "count": "' . $count . '", "msg": "'.$msg.'" }';
if($error)
exit;
}</p>
<p> if (!$is_member)
{
$error = '회원만 가능합니다.';
print_result($error, $count);
}</p>
<p> if (!($bo_table && $wr_id)) {
$error = '값이 제대로 넘어오지 않았습니다.';
print_result($error, $count);
}</p>
<p> $ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;
if (!get_session($ss_name)) {
$error = '해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.';
print_result($error, $count);
}</p>
<p> $row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} ", FALSE);
if (!$row['cnt']) {
$error = '존재하는 게시판이 아닙니다.';
print_result($error, $count);
}</p>
<p> if ($good == 'good' || $good == 'nogood')
{
if($write['mb_id'] == $member['mb_id']) {
$error = '자신의 글에는 추천 또는 비추천 하실 수 없습니다.';
print_result($error, $count);
}</p>
<p> if (!$board['bo_use_good'] && $good == 'good') {
$error = '이 게시판은 추천 기능을 사용하지 않습니다.';
print_result($error, $count);
}</p>
<p> if (!$board['bo_use_nogood'] && $good == 'nogood') {
$error = '이 게시판은 비추천 기능을 사용하지 않습니다.';
print_result($error, $count);
}</p>
<p> $sql = " select bg_id,bg_flag,bg_datetime from {$g5['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_id'])
{</p>
<p> if($good != $row['bg_flag']){
if ($row['bg_flag'] == 'good')
$status = '추천';
else
$status = '비추천';</p>
<p> $error = "이미 $status 하신 글 입니다.";
print_result($error, $count);
}else{
$timestamp = strtotime($row['bg_datetime']." +5 minutes");
if($timestamp < strtotime(G5_TIME_YMDHIS)){
$msg = "취소는 5분이내에만 가능합니다.";
print_result($error, $count, $msg);
}else{
// 추천(찬성), 비추천(반대) 카운트 감소
sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_{$good} = wr_{$good} - 1 where wr_id = '{$wr_id}' ");
// 내역 삭제
sql_query(" delete from {$g5['board_good_table']} where bg_id = '".$row['bg_id']."' ");</p>
<p> $sql = " select wr_good,wr_nogood from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";
$row = sql_fetch($sql);</p>
<p> $count = $row['wr_'.$good];</p>
<p> run_event('bbs_increase_good_json', $bo_table, $wr_id, $good);</p>
<p> if ($good == 'good')
$status = '추천';
else
$status = '비추천';</p>
<p> $msg = $status."이 취소되었습니다.";
print_result($error, $count, $msg);
}
}</p>
<p>
}
}
} else {
include_once(G5_PATH.'/head.sub.php');</p>
<p> if (!$is_member)
{
$href = G5_BBS_URL.'/login.php?'.$qstr.'&url='.urlencode(get_pretty_url($bo_table, $wr_id));</p>
<p> alert('회원만 가능합니다.', $href);
}</p>
<p> if (!($bo_table && $wr_id))
alert('값이 제대로 넘어오지 않았습니다.');</p>
<p> $ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;
if (!get_session($ss_name))
alert('해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.');</p>
<p> $row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} ", FALSE);
if (!$row['cnt'])
alert('존재하는 게시판이 아닙니다.');</p>
<p> if ($good == 'good' || $good == 'nogood')
{
if($write['mb_id'] == $member['mb_id'])
alert('자신의 글에는 추천 또는 비추천 하실 수 없습니다.');</p>
<p> if (!$board['bo_use_good'] && $good == 'good')
alert('이 게시판은 추천 기능을 사용하지 않습니다.');</p>
<p> if (!$board['bo_use_nogood'] && $good == 'nogood')
alert('이 게시판은 비추천 기능을 사용하지 않습니다.');</p>
<p> $sql = " select bg_id,bg_flag,bg_datetime from {$g5['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_id'])
{
if($good != $row['bg_flag']){
if ($row['bg_flag'] == 'good')
$status = '추천';
else
$status = '비추천';</p>
<p> $msg = "이미 $status 하신 글 입니다.";
alert($msg, '', false);
}else {
$timestamp = strtotime($row['bg_datetime'] . " +5 minutes");
if ($timestamp < strtotime(G5_TIME_YMDHIS)) {
$msg = "취소는 5분이내에만 가능합니다.";
alert($msg, '', false);
} else {
// 추천(찬성), 비추천(반대) 카운트 감소
sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_{$good} = wr_{$good} - 1 where wr_id = '{$wr_id}' ");
// 내역 삭제
sql_query(" delete from {$g5['board_good_table']} where bg_id = '" . $row['bg_id'] . "' ");</p>
<p> $sql = " select wr_good,wr_nogood from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";
$row = sql_fetch($sql);</p>
<p> $count = $row['wr_' . $good];</p>
<p> if ($good == 'good')
$status = '추천';
else
$status = '비추천';</p>
<p> $href = get_pretty_url($bo_table, $wr_id);</p>
<p> run_event('bbs_increase_good_html', $bo_table, $wr_id, $good, $href);</p>
<p> $msg = $status . "이 취소되었습니다.";
alert($msg, '', false);
}
}
}
}
}</p>
<p>run_event('bbs_good_after', $bo_table, $wr_id, $good);</p>
<p>@include_once($board_skin_path.'/good.tail.skin.php');</p>
<p>
딱하나
https://sir.kr/g5_tip/13384 내용중에서 아래부분은 적용을 못했습니다.
</p>
<p>그다음에 else문에 추천이 성공했을때 증가 보시면 print_result함수가 있을껀데요</p>
<p>
if ($good == 'good')
$status = '추천';
else
$status = '비추천';</p>
<p>$msg = "이 글을 $status 하셨습니다.";
print_result($error, $count, $msg);</p>
<p>이렇게 $msg를 추가해줍시다</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
3년 전
추천하면 등록하는 코드는 어디있나요? ==> insert~~~~
추천이 되어야 취소도 가능할 것 아닙니까?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
타버린나무
3년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택
적용 전.후 가 없이 적용후 소스만 보고는 따라하기 힘드네요