댓글 목록

게시판 good.php

페이지 정보

작성자 운영자 작성일 17-12-13 12:29 조회 1,505 댓글 0

동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.

글 내용에 대해 '추천', '비추천'을 사용할 수 있을 때 사용되는 파일입니다.


위치 : /bbs


관리자 > 게시판관리 개별 게시판 설정에서 '추천', '비추천'을 사용으로 선택했을때 사용자가 특정 글을 클릭하면 글 내용 하단에 엄지 손가락 모양의 '추천', '비추천'을 할 수 있는 버튼이 나옵니다.


해당 버튼을 클릭하면 good.php이 호출되어 처리하게 됩니다.


코드량은 많아 보이는데 자바스크립트로 처리할 경우와 php로 처리할 경우가 중복됩니다.

사용자가 브라우저에서 자바스크립트를 차단했을 경우 php로 처리가 됩니다.


추천/비추천 기능은 회원만 가능합니다.

추천/비추천 기능은 자신의 글에는 할 수 없습니다.


중복된 추천은 안됩니다.

$sql = " select bg_flag 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);

중복되지 않을 경우 카운트 증가 및 입력을 합니다.

// 추천(찬성), 비추천(반대) 카운트 증가
            sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '{$wr_id}' ");
            // 내역 생성
            sql_query(" insert {$g5['board_good_table']} set bo_table = '{$bo_table}', wr_id = '{$wr_id}', mb_id = '{$member['mb_id']}', bg_flag = '{$good}', bg_datetime = '".G5_TIME_YMDHIS."' ");

            $sql = " select wr_{$good} as count from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";
            $row = sql_fetch($sql);

글보기 스킨 화일에 나오는 추천/비추천과 관련한 자바스크립트 코드는 아래와 같습니다.

// 추천, 비추천
    $("#good_button, #nogood_button").click(function() {
        var $tx;
        if(this.id == "good_button")
            $tx = $("#bo_v_act_good");
        else
            $tx = $("#bo_v_act_nogood");

        excute_good(this.href, $(this), $tx);
        return false;
    });



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($tx.attr("id").search("nogood") > -1) {
                    $tx.text("이 글을 비추천하셨습니다.");
                    $tx.fadeIn(200).delay(2500).fadeOut(200);
                } else {
                    $tx.text("이 글을 추천하셨습니다.");
                    $tx.fadeIn(200).delay(2500).fadeOut(200);
                }
            }
        }, "json"
    );
}


댓글목록 0

등록된 댓글이 없습니다.