테스트 사이트 - 개발 중인 베타 버전입니다

추천/비추천 토글 소스 적용 채택완료

타버린나무 3년 전 조회 1,415

팁에 있는 그누보드 추천 취소 기능 만들기!! 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년 전
그러게요... 하란데로 하면 insert문이 없어지네요.. 잘못 이해하고 적용한거같은데
적용 전.후 가 없이 적용후 소스만 보고는 따라하기 힘드네요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인