사용자의 글 작성수 구하기(하루에 한번만 글작성) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

사용자의 글 작성수 구하기(하루에 한번만 글작성) 정보

사용자의 글 작성수 구하기(하루에 한번만 글작성)

첨부파일

threes_rowcount.lib.php (2.6K) 263회 다운로드 2006-05-17 13:27:19

본문

그누보드3에 제공한 팁을 g4용으로 변경한것입니다.
부가적인것은 gnu3용을 참고하세요
http://www.sir.co.kr/bbs/board.php?bo_table=g3_tiptech&wr_id=3122

//#######################################################
// usage :
//      threes_rowcount($bo_table, $member[mb_id], all, 1, 1, 1);
//      threes_rowcount($bo_table, $member[mb_id],  0, 1, 1, 1);
// threes_rowcount()의 6개 인수설명
//      1. 게시판 테이블명($bo_table)
//      2. 사용자 ID($member[mb_id])
//      3. 기간설정(all이면 전체, 숫자이면 숫자일전부터 현재까지 조회, 0이면 오늘)
//      4. 1이면 새글(원문)에서 체크, 0이면 체크안함
//      5. 1이면 답글에서 체크, 0이면 체크안함
//      6. 1이면 코멘트에서 체크, 0이면 체크안함
//#######################################################

## 적용예제 (하루에 한번만 글작성)
## 사용자별로 설정기간동안 설정한 이상의 글을 작성하지 못하도록 하고자 할경우

1. lib 파일 설정
  threes_rowcount.lib.php를 extend 디렉토리에 넣는다.
 
2. bbs/write_update.php, bbs/write_comment_update.php에 글 작성수 체크 기능을 부여한다.
  (그누보드 패치시마다 확인하여 write_udpate.php, write_comment_update.php가 변경될때마다 적용해야 합니다.)
 
  2-1) bbs/write_update.php 수정
        소스 상단의 $notice_array 설정하는곳 아래쪽에 if 문을 하나 추가하시고 아래쪽의 3번에 있는 내용을 필요에 맞게 수정해서 추가하세요.

        $notice_array = explode("\n", trim($board[bo_notice]));
       
        if ($w == '' || $w == 'r') {
            #####################################################
            ### 이곳에 아래의 3번을 참고하여 내용을 삽입하세요
            #####################################################
        }
       
  2-2) bbs/write_comment_update.php 수정
        소스 상단의 "코멘트를 쓸 권한이 없습니다" 위쪽에 3번에 있는 내용을 필요에 맞게 수정해서 추가하세요.

        if ($w == "c" || $w == "cu")
        {
            #####################################################
            ### 이곳에 아래의 3번을 참고하여 내용을 삽입하세요
            #####################################################
       
            if ($member[mb_level] < $board[bo_comment_level])
                alert("코멘트를 쓸 권한이 없습니다.");
        }
        else
            alert("w 값이 제대로 넘어오지 않았습니다.");


3. 위 2번에서 설명한 bbs/write_update.php, bbs/write_comment_update.php에 넣을 보기
  3-1. board_1 테이블에 사용자가 새글,답글,코멘트에서 글작성이 한번만 가능하도록 할경우   
        # $bo_table에서 $member[mb_id]에게 글작성수 체크하기
        if($bo_table == 'board_1' && !$is_admin) {
            $row_count = threes_rowcount($bo_table, $member[mb_id], all, 1, 1, 1);
            if($row_count) {
                alert("본 게시판은 글작성이 한번만 가능합니다.");
            }
        } 
  3-2. board_1, board_2 테이블에 사용자가 하루에 새글을 한번만 작성가능하게 할경우
        (답글과, 코멘트는 제한없음)
        # $bo_table에서 $member[mb_id]에게 글작성수 체크하기
        if(($bo_table == 'board_1' || $bo_table == 'board_2') && !$is_admin) {
            $row_count = threes_rowcount($bo_table, $member[mb_id], 0, 1, 0, 0);
            if($row_count) {
                alert("본 게시판은 새글작성이 하루에 한번만 가능합니다.");
            }
        } 
  3-3. board_3 테이블에 사용자가 최근 30일동안에 새글과 답글을 5번 작성가능하게 할경우
        (코멘트는 제한없음)
        # $bo_table에서 $member[mb_id]에게 글작성수 체크하기
        if($bo_table == 'board_3') {
            $row_count = threes_rowcount($bo_table, $member[mb_id], 30, 1, 1, 0);
            if($row_count > 5) {
                alert("본 게시판은 새글과 답변이 30일동안 5번 까지만 가능합니다.");
            }
        } 
  3-4. 위의 3-1과 3-3를 같이 적용할경우
        3-1번의 내용을 넣고, 3-3의 내용중 if를 else if로 변경한다.
        # $bo_table에서 $member[mb_id]에게 글작성수 체크하기
        if($bo_table == 'board_1' && !$is_admin) {
            $row_count = threes_rowcount($bo_table, $member[mb_id], all, 1, 1, 1);
            if($row_count) {
                alert("본 게시판은 글작성이 한번만 가능합니다.");
            }
        }else if($bo_table == 'board_3' && !$is_admin) {
            $row_count = threes_rowcount($bo_table, $member[mb_id], 30, 1, 1, 0);
            if($row_count > 5) {
                alert("본 게시판은 새글과 답변이 30일동안 5번 까지만 가능합니다.");
            }
        } 

ps. 프로그램 작업하는것보다 글로 설명하는것이 더 힘들군요
    혹시 의문점있으시면 코멘트 달아주십시오.
추천
3

댓글 14개

bbs/write_update.php, bbs/write_comment_update.php 을 수정하면 모든 게시판에 적용되는 것 같은데
각각의 게시판 스킨별로 적용할 수는 없을까요?

하루에 한번만 글작성하게 하면 제한이 좀 심한 느낌이 드는데 하루 5번 이내로 제한할려면 어떻게 해야 하나요?

물어보기만해서 죄송하군요
다섯번 체크하시는것의 위의 예에서 다음 내용을 변경해보세요.
if($row_count) {
    alert("본 게시판은 글작성이 한번만 가능합니다.");
}

if($row_count > 5) { //  6번재부터 아래 메세지 출력
    alert("본 게시판은 글작성이 다섯번만 가능합니다.");
}
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT