그누보드 추천 취소 기능 만들기!! > 코딩

본문 바로가기
사이트 내 전체검색

코딩

그누보드 그누보드 추천 취소 기능 만들기!!

페이지 정보

본문

URL 복사

안녕하세요 이번에 알려드릴것은 추천 취소 기능입니다


밑에 보시면서 대충 찾으셔서 바꾸시면될듯합니다? 하하


일단 첫번째로


/bbs/good.php 로 갑시다!


여기서보면 

// 자바스크립트 사용가능할 때
if(isset($_POST['js']) && $_POST['js'] === "on") {

이렇게 나뉘는게 보일텐데 두개다 작업을 해줘야합니다


일단 먼저 자바스크립트 사용가능할때 먼저 하겠습니다


function print_result($error, $count, $msg='')
{
echo '{ "error": "' . $error . '", "count": "' . $count . '", "msg": "'.$msg.'" }';
if($error)
exit;
}

print_result 함수는 $msg를 추가해줍시다

이유는 취소를했을때 카운트 증가/감소값이 바로보여야하는데 기존꺼에는 error얼럿아니면 추천증가관련 메세지만 출력하기 때문이지요

게다가 메세지도 취소되었습니다로 보여야 직관적이고 좋을테니 이렇게 하는겁니다


그리고 밑으로 내려가다보면~~ select문이 보일껍니다


$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'])

이렇게 바꿔줍시다 달라진건 bg_id와 bg_datetime을 들고오는 정도입니다

bg_id는 취소에 꼭필요한 값이니 반드시들고오고

bg_datetime은 뒤에 필요한 기능을 위해 들고오는것데 보시고 필요없으시면 빼셔도됩니다


그럼이제 기존 추천이 이미되어있을경우를 수정합시다

그냥 if문 안에 내용을

 

if($good != $row['bg_flag']){
if ($row['bg_flag'] == 'good')
$status = '추천';
else
$status = '비추천';

$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']."' ");

$sql = " select wr_good,wr_nogood from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";
$row = sql_fetch($sql);

$count = $row['wr_'.$good];

run_event('bbs_increase_good_json', $bo_table, $wr_id, $good);

if ($good == 'good')
$status = '추천';
else
$status = '비추천';

$msg = $status."이 취소되었습니다.";
print_result($error, $count, $msg);
}
}

 

요렇게 싹 바꿔주세요


뭐 내용은 보시면 아실겁니다 ㅎㅎ..


$timestamp 부분은 추천한지 5분이 지나면 취소가 불가능하도록 막아둔것입니다 여기서 bg_datetime이 쓰입니다 현재 시간과 비교를해야되기때문이지요

이 기능이 필요없다 하시는분들은 if문을 지우시고 else안의 내용만 쓰시면됩니다~


그다음에 else문에 추천이 성공했을때 증가 보시면 print_result함수가 있을껀데요

if ($good == 'good')
$status = '추천';
else
$status = '비추천';

$msg = "이 글을 $status 하셨습니다.";
print_result($error, $count, $msg);

이렇게 $msg를 추가해줍시다


이렇게하면 자바스크립트 사용일때 부분은 끝났구요


자바스크립트를 사용하지않을때 부분이 남았는데 저기부분도 보시면 똑같이 되어있습니다

다만 print_result가 아니라 alert으로 되어있을꺼에요 그부분만 신경써서 바꿔주시면됩니다

 

$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 = '비추천';

$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'] . "' ");

$sql = " select wr_good,wr_nogood from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";
$row = sql_fetch($sql);

$count = $row['wr_' . $good];

if ($good == 'good')
$status = '추천';
else
$status = '비추천';

$href = get_pretty_url($bo_table, $wr_id);

run_event('bbs_increase_good_html', $bo_table, $wr_id, $good, $href);

$msg = $status . "이 취소되었습니다.";
alert($msg, '', false);
}
}
}

 

이렇게만 하시면됩니다


그럼 이제 다오셨어요!


각이제 skin/board/사용중인스킨/view.skin.php로 갑시다

view.skin.php 보시면 맨하단에 excute_good함수가 있을겁니다


function excute_good(href, $el, $tx)
{
$.post(
href,
{ js: "on" },
function(data) {
if(data.error) {
alert(data.error);
return false;
}

if(data.count) {
$el.find("strong").text(number_format(String(data.count)));
}

if(data.msg){
$tx.stop().hide();
$tx.text(data.msg);
$tx.fadeIn(200).delay(2500).fadeOut(200);
}
}, "json"
);
}

내용을 이렇게 바꿔줍시다

error 메세지가있을경우엔 기존과 그대로 alert창을 호출하고

추천 증가/취소가 있을경우에는 카운트값을 바꾸고 msg를 호출해서 보여주게끔하는거죠


위 함수를 각 사용중인 스킨에 다 바꿔주시면됩니다


그럼이제 추천을 누르고 한번더 눌렀을때 취소를 할 수 있습니다.

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 18건 1 페이지
코딩 목록
번호 제목 글쓴이 날짜 추천 조회
공지 운영자 쪽지보내기 마이페이지 아이디로 검색 07-21 0 628
공지 운영자 쪽지보내기 마이페이지 아이디로 검색 06-03 0 620
18 IT정보 건들이 쪽지보내기 마이페이지 아이디로 검색 08-22 0 29
17 그누보드 포스기 이름으로 검색 08-21 0 16
16 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 08-14 0 76
15 PHP 운영자 쪽지보내기 마이페이지 아이디로 검색 08-07 0 16
14 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 08-06 0 27
13 IT정보 운영자 쪽지보내기 마이페이지 아이디로 검색 08-05 0 43
12 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 07-14 0 71
11 IT정보 운영자 쪽지보내기 마이페이지 아이디로 검색 07-10 0 76
10 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 07-10 0 587
9 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 07-08 0 120
8 html,CSS 운영자 쪽지보내기 마이페이지 아이디로 검색 06-23 0 142
7 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 06-05 0 128
6 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 06-05 0 118
5 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 05-29 0 83
4 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 05-29 0 92
열람중 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 05-07 0 213
2 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 04-29 0 151
1 그누보드 운영자 쪽지보내기 마이페이지 아이디로 검색 04-28 0 179

검색


회원로그인

회원가입

사이트 정보

회사명 : YEAH 커뮤니티 / 대표 : 이성재 / 개인정보관리책임자 : 이성재

Copyright © YE-AH.NET All rights reserved.