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

그누3 팁자료실

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

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

첨부파일

threes_rowcount.lib.php (2.5K) 89회 다운로드 2004-02-18 22:21:53

본문

//#######################################################
// 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 파일 설정
  3.23 이상 사용자는 threes_rowcount.lib.php를 lib 디렉토리에 넣는다.
  3.22 이하 사용자는 threes_rowcount.lib.php의 내용을 lib/developer.lib.php에 붙여넣기 한다.
 
2. bbs/gbupdate.php에 글 작성수 체크 기능을 부여한다.
  다음은 예는 3.26의 소스인데 "// 세션의 시간 검사" 다음에 있는 if문 아래쪽에 넣으시면 됩니다.)
  (그누보드 패치시마다 확인하여 gbupdate.php가 변경될때마다 적용해야 합니다.)
 
    // 세션의 시간 검사
    if ($w == '' || $w == 'r' || $w == 'c') {
       
        #####################################################
        ### 이곳에 아래의 3번을 참고하여 내용을 삽입하세요
        #####################################################
       
        if ($HTTP_SESSION_VARS["ss_datetime"] >= (time() - $default[de_delay_sec])) {
            alert("너무 빠른 시간내에 게시물을 연속해서 올릴 수 없습니다.");
        }
   
        # 3.09 추가
        session_register("ss_datetime");
   
        $ss_datetime = $HTTP_SESSION_VARS["ss_datetime"] = time();
    }

3. 위 2번에서 설명한 bbs/gbupdate.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. 프로그램 작업하는것보다 글로 설명하는것이 더 힘들군요
    혹시 의문점있으시면 코멘트 달아주십시오.
추천
0

댓글 전체

최강그누 홧띵!
그런데, 제가 성경이어쓰기스킨을 응용해서 쓰고 있는데...하루에 무한정으로 글을 쓸수는 있지만 연속해서 글을 올리지 못하게 하려면 어찌해야 할까요...
그러니까, 자기가 쓴 글 다음에  다른사람이 글을 써야 그다음에 또 내가 쓸수 있도록 하는거 말씀입니다.
전체 80
그누3 팁자료실 내용 검색

회원로그인

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