그누보드 첨부파일 다운로드 시 매번 포인트 차감 설정 방법
페이지 정보

본문
그누보드에서 기본 제공하는 최초 1회 포인트 차감 대신, 파일을 내려받을 때마다 매번 포인트를 차감하도록 스킨 파일을 설정하는 방법과 특정 게시판 지정 방법을 확인합니다.
그누보드 첨부파일 다운로드 시 매번 포인트 차감 설정 방법
그누보드 기본 설정상 첨부 파일 다운로드 시 최초 1회만 포인트가 차감됩니다. 운영 환경에 따라 파일을 내려받을 때마다 매번 포인트를 차감하도록 스킨 파일을 수정하여 포인트 경제 시스템을 관리할 수 있습니다. 하지만 운영 목적에 따라 파일을 내려받을 때마다 매번 포인트를 차감하도록 설정하여 포인트 경제 시스템을 정밀하게 관리할 수 있습니다.
1. 다운로드 중복 차감 설정 방법
스킨 파일을 수정하거나 생성하기 전에는 반드시 원본 파일을 백업하여 예기치 않은 오류에 대비해야 합니다. 포인트를 매번 차감 적용하려는 게시판 스킨 폴더 안에 download.tail.skin.php 파일을 신규로 생성하고 아래의 코드를 입력합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 자신의 글이거나 관리자인 경우 통과
if (($write['mb_id'] && $write['mb_id'] == $member['mb_id']) || $is_admin) ;
else if ($board['bo_download_level'] >= 1) // 회원이상 다운로드가 가능하다면
{
// 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
if ($member['mb_point'] + $board['bo_download_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 다운로드('.number_format($board['bo_download_point']).')가 불가합니다.\n\n포인트를 적립하신 후 다시 다운로드 해 주십시오.');
// 다운로드할 때마다 계속해서 포인트 차감
insert_point($member['mb_id'], $board['bo_download_point'], "{$board['bo_subject']} $wr_id 파일 다운로드", $bo_table, $wr_id, G5_TIME_YMDHIS);
}
?>
2. 적용 시 주의사항 및 확인
- 해당 코드는 회원의 보유 포인트가 설정된 다운로드 차감 포인트보다 부족할 경우 다운로드를 차단하고 경고창을 출력합니다.
- 본인이 작성한 게시물의 첨부파일이거나 관리자 계정일 때는 포인트가 차감되지 않도록 예외 처리가 포함되어 있습니다.
- 파일을 생성한 후 실제 게시판에서 다운로드를 시도하여 포인트가 정상적으로 반복 차감되는지 확인해야 하며, 문제 발생 시 백업해 둔 파일을 복구하여 원래 상태로 되돌릴 수 있습니다.
특정 게시판에만 제한적으로 포인트 차감 적용하기
모든 게시판이 아니라 자유게시판 등 특정 게시판에만 매번 포인트 차감 기능을 적용하고 싶다면, download.tail.skin.php 파일에 작성한 포인트 차감 코드 전체를 $bo_table 변수를 이용한 조건문으로 감싸서 특정 게시판 아이디에서만 동작하도록 지정할 수 있습니다.
특정 게시판 아이디를 지정할 때는 아래와 같이 조건문을 작성합니다.
if ($bo_table == 'free') {
// 다운로드할 때마다 계속해서 포인트 차감 로직
}
여기서 'free' 부분에 적용하고자 하는 실제 게시판 테이블 아이디를 입력하여 제한할 수 있습니다.
첨부파일 다운로드 포인트 반복 차감 시 예외 처리 동작 방식
그누보드 첨부파일 다운로드 시 매번 포인트를 차감하는 설정에서, 작성자 본인이나 관리자가 파일을 다운로드할 때 포인트가 차감되지 않도록 예외 처리가 적용됩니다.
예외 처리 조건 및 동작
- 작성자 본인: 다운로드하려는 게시물의 작성자 아이디(
$write['mb_id'])와 현재 로그인한 회원의 아이디($member['mb_id'])가 일치하는 경우 통과되어 포인트가 차감되지 않습니다. - 관리자: 관리자 계정(
$is_admin)으로 로그인한 상태인 경우 포인트가 차감되지 않고 다운로드가 진행됩니다. - 일반 회원: 위 두 가지 조건에 해당하지 않고, 회원이상 다운로드가 가능한 게시판(
$board['bo_download_level'] >= 1)인 경우에 한해 다운로드할 때마다 설정된 포인트가 반복 차감됩니다.
만약 회원의 보유 포인트가 다운로드 차감 포인트보다 부족한 경우에는 다운로드가 차단되며 경고창이 출력됩니다.
상황별 판단 및 행동 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 모든 게시판에 매번 포인트 차감 적용 | 전체 적용 필요 시 | 스킨 폴더에 download.tail.skin.php 생성 후 전체 코드 적용 |
| 특정 게시판에만 제한적 적용 | 특정 게시판 ID 확인 | 전체 코드를 if ($bo_table == '게시판아이디') 조건문으로 감싸기 |
| 적용 후 오류 발생 | 기능 미작동 또는 경고창 미출력 | 백업해둔 원본 파일로 복구 후 코드 문법 및 게시판 ID 재확인 |
실전 FAQ
Q. 포인트가 부족한 회원이 다운로드 시도 시 어떻게 되나요?
보유 포인트가 차감 포인트보다 적으면 다운로드가 즉시 차단되며, 포인트 부족을 알리는 경고창이 출력됩니다. 별도의 추가 설정은 필요 없습니다.
Q. 예외 처리가 작동하지 않는 것 같습니다.
$write['mb_id']와 $member['mb_id']가 일치하는지, 혹은 $is_admin 권한이 정상적으로 부여된 상태인지 확인하십시오. 스킨 파일 내의 조건문 순서가 코드 상단에 위치해야 정상적으로 예외 처리가 적용됩니다.
함께 보면 좋은 글
- 그누보드 첨부파일 다운로드 포인트 차감 로직 분석 및 동작 원리
- 그누보드 게시판 뷰 페이지에 첨부파일 설명 직접 출력하는 방법
- 그누보드 글 수정 시 긴 첨부파일 명으로 인한 UI 깨짐 해결 방법
참고자료
기타 참고자료
- 이전글그누보드 모바일 환경에서 특정 게시판 상단 및 하단 파일 출력 제외하기 26.09.14
- 다음글그누보드 특정 게시판 관리자 외 사용자 글 삭제 제한 방법 26.09.13
댓글목록
등록된 댓글이 없습니다.