아이디별로 포인트 할인 되게하는방법좀...[3만포인트검] > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

아이디별로 포인트 할인 되게하는방법좀...[3만포인트검] 정보

아이디별로 포인트 할인 되게하는방법좀...[3만포인트검]

본문

아래와같이 포인트를 할인 할려고 합니다.
70%는 test 할인되게 해줄라고 하구요.
60%는 test2 할인되게 해줄려고 하는데요.
어캐 해야되나요? 예전에 게로타님께서 알려주신 소스를 보면은...
bbs/download.php를 수정하라고 했는데 아무리 해도 안되더라구요.

// 아이디는 70% 차감. 다른 레벨은 정상차감
if ($member['mb_id'] == 'test') {

// 게시물당 한번만 차감하도록 수정
insert_point($member[mb_id], (int)($board[bo_download_point] * 0.7), "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");

} else {

// 게시물당 한번만 차감하도록 수정
insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");

}
bbs/download.php 에서 47번째 줄에서 수정했는데도
왜 게시판에서는 다운을 실제로 파일을 받으면 포인트가 그대로 깍일까요?

댓글 전체

if ($member['mb_id'] == 'test') {
->
if ($member[mb_level] >= 3) { //3레벨이상이면 70% 차감

//여기 포인트 소스 //

} else if ($member[mb_level] == 2) {  //2레벨은 60% 차감

//여기 포인트 소스 //

} else { //비회원은 정상차감

//여기 포인트 소스 //

}


질문 이해가 잘 안됨.. 어려워요.
이게 문제는요 아이디가 고정이 아니라 수시로 변경 되는거 아닌가요 ?
그렇다면 어디에 아이디를 저장해서 불러 와서 차감을 해줘야 하는 것인데 문제는
bbs/download.php 단에서 처리를 하게 되면 모든 게시판에 죄다 적용이 되기 때문에
분리가 안됩니다. 스킨단에서 처리를 해야 하는데 중요 한건 아이디기 지금 예로 2명
test / test2 만 작성하셨지 더 늘어 날 수도 있고 줄어 들 수도 있는거 아닌지요 ?
그렇다면 할인되는 아이디는 어디에 저장할 것이며 무엇으로 구분 할것이며 또 전체 게시판에
적용을 할것인지 아니면 특정 게시판에서만 적용을 할것인지를 먼저 구성 하신다음에 해당
코드를 물어 보셔야 되는게 아닌가 싶네요 ..
그런 아무런 준비가 되지 않은 상태에서 무턱되고 그냥 다운로드때 포인트가 차감율을 물어 보면
질문을 계속 올리시는데도 불구하고 정확한 답변이 안나오는 것입니다.
이런건 어떤가 싶어 만들어 보았습니다.


        // 게시물당 한번만 차감하도록 수정
        //insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
        /*
        $board의 여분 필드를 이용해서 바꾸어 보자.

        bo_9에는 조건, bo_10에는 값이 적혀 있다.
        bo_9에 올 수 있는 값은 level|id
        또한 할인 폭을 적어주어야 함.
        예:
            $board[bo_9] = 'level,0.7'; <--- 할인 조건은 level이며 할인 폭은 0.7 즉 70%
            $board[bo_10] = '5'; <!-- 할인 조건이 level이므로 level이 5이상인 경우

        아이디 일경우는 bo_10값에 ','로 구분할 것.
        예:
            $board[bo_9] = 'id,0.7'; <--- 할인조건은 id로 하며 할인 폭은 0.7 즉 70%
            $board[bo_10] = 'test,test2'; <--- 아이디가 test와 test2에게만 70%할인 혜택을 주자.

        */
        if ($board[bo_9]) {
            $cond = explode(',', $board[bo_9]);
            switch($cond[0]) {
                case 'id':
                    $ids = explode(',', $board[bo_10]);
                    if (in_array($member[mb_id], $ids)) {
                        insert_point($member[mb_id], floor($board[bo_download_point]*$cond[1]), "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
                    }
                    else {
                        insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
                    }
                    break;
                case 'level':
                    if ($member[mb_level] >= $board[bo_10]) {
                        insert_point($member[mb_id], floor($board[bo_download_point]*$cond[1]), "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
                    }
                    else {
                        insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
                    }
                    break;
            }
        }
        else {
            insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
        }
허걱... bbs/download.php에서 다음을 찾습니다:

        // 게시물당 한번만 차감하도록 수정
        insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");

그리고 이것대신 위의 소스를 넣으면 됩니다.

사용법은 사용할 보드의 여분필드에 적어주시면 되는데요...
bo_9에는 조건, bo_10에는 값을 적으면 됩니다. bo_9에 올 수 있는 값은 level 혹은 id를 적고 쉼표로 구분한 후에 할인 폭을 같이 적어주어야 합니다.
예1. 레벨로 구분하는 경우:
  $board[bo_9] = 'level,0.7'; <--- 할인 조건은 level이며 할인 폭은 0.7 즉 70%
  $board[bo_10] = '5'; <!-- 할인 조건이 level이므로 level이 5이상인 경우

예2. 아이디 일경우:
  $board[bo_9] = 'id,0.7'; <--- 할인조건은 id로 하며 할인 폭은 0.7 즉 70%
  $board[bo_10] = 'test,test2'; <--- 아이디가 test와 test2에게만 70%할인 혜택을 주자.

아이디로 구분하는 경우 bo_10에 원하는 아이디를 쉼표로 구분해서 적어주시면 됩니다. 급하게 만들다보니까 trim을 적용하지 않았기 때문에 값을 넣을 때 공백이 있으면 않됩니다. 만일 공백도 상관이 없게 하려면 위의 소스에서 $cond = explode(',', $board[bo_9]);는 $cond = array_map('trim', explode(',', $board[bo_9])); 으로 수정하고 $ids = explode(',', $board[bo_10]); 는 $ids = array_map('trim', explode(',', $board[bo_10]));로 수정하면 됩니다.
전체 7 |RSS
그누4 질문답변 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 조회
  • 게시물이 없습니다.

회원로그인

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