BOARD

팁·활용

그누보드 다중 첨부파일 개별 다운로드 포인트 차감 설정 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 9회 작성일 26-10-05 17:21

본문

그누보드 다중 첨부파일 개별 다운로드 포인트 차감 설정 방법

그누보드 기본 설정은 동일 게시물 내 여러 첨부파일을 다운로드할 때 최초 1회만 포인트를 차감합니다. 이를 파일마다 개별적으로 포인트가 차감되도록 수정하여 포인트 경제 시스템을 정밀하게 관리하는 방법을 안내합니다.

다중 첨부파일 다운로드 시 파일별 포인트 개별 차감 수정 방법

그누보드 기본 설정은 동일 게시물 내의 첨부파일을 여러 번 다운로드해도 게시물당 1회만 포인트가 차감되도록 되어 있습니다. 이를 각 파일마다 개별적으로 포인트가 차감되도록 수정하려면 bbs/download.php 파일의 세션 체크 로직과 포인트 기록 함수를 수정해야 합니다.

수정 전 주의사항

작업을 시작하기 전에 반드시 bbs/download.php 파일을 백업하십시오. 코드 수정 중 발생할 수 있는 오류에 대비하기 위함입니다.

수정 절차

bbs/download.php 파일을 열어 다음 두 곳을 수정합니다.

1. 세션 이름($ss_name) 수정 파일 내에서 이미 다운로드 받은 파일인지 검사하는 세션 변수에 파일 번호($no)를 추가하여 파일별로 세션을 구분합니다.

  • 기존 코드:$ss_name = 'ss_down_'.$bo_table.'_'.$wr_id;
  • 수정 코드:$ss_name = 'ss_down_'.$bo_table.'_'.$wr_id.'_'.$no;

2. 포인트 차감 함수(insert_point) 수정 포인트 내역이 DB에 기록될 때 게시물 번호와 파일 번호가 함께 저장되도록 $wr_id 인자를 수정합니다.

  • 기존 코드:insert_point($member['mb_id'], $board['bo_download_point'], "{$board['bo_subject']} $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
  • 수정 코드:insert_point($member['mb_id'], $board['bo_download_point'], "{$board['bo_subject']} $wr_id 파일 다운로드", $bo_table, $wr_id.'|'.$no, "다운로드");

결과 확인

수정 후 파일을 다운로드하면 g5_point 테이블에 포인트 내역이 기록됩니다. 이때 wr_id 필드에는 게시물번호|파일번호(예: 7|0) 형태로 저장되어, 각 파일별로 포인트 차감 내역이 개별적으로 관리되는 것을 확인할 수 있습니다.

코드 수정 전 주의사항

그누보드 소스 코드를 수정하기 전에는 반드시 원본 파일을 백업해야 합니다. 수정 과정에서 발생할 수 있는 문법 오류나 예기치 않은 기능 오작동으로부터 사이트를 보호하고, 문제가 발생했을 때 즉시 이전 상태로 복구하기 위함입니다.

백업 및 복구 절차

  1. 파일 백업: 수정 대상인 bbs/download.php 파일을 서버에서 로컬 PC로 다운로드하거나, 서버 내 안전한 경로에 복사본(예: download.php.bak)을 생성합니다.
  2. 오류 대응: 코드 수정 후 기능이 작동하지 않거나 경고창이 출력되지 않는 등 문제가 발생하면, 즉시 백업해둔 원본 파일을 서버에 다시 업로드하여 복구합니다.
  3. 환경 확인: 수정 후에는 게시판 ID나 코드 문법이 정확하게 적용되었는지 재확인합니다.

참고 사항

  • 본 수정은 그누보드 원본 소스를 기준으로 합니다. 만약 별도의 커스텀 스킨이나 플러그인을 사용 중이라면 코드의 위치나 구조가 다를 수 있으므로, 해당 스킨의 구조를 먼저 파악해야 합니다.
  • 포인트 차감 내역은 DB에 기록되므로, 수정 후 실제 다운로드 시 포인트가 파일별로 정상적으로 차감되는지 테스트 계정으로 확인하는 것을 권장합니다.

포인트 차감 내역 확인 방법

그누보드에서 insert_point 함수를 통해 기록된 포인트 차감 내역은 데이터베이스의 g5_point 테이블에 저장됩니다. 다중 첨부파일 다운로드 시 파일별로 포인트를 개별 차감하도록 수정한 경우, 포인트 내역이 게시물 번호와 파일 번호를 조합하여 기록되는지 확인할 수 있습니다.

포인트 내역 확인 절차

  1. DB 접속: MySQL 관리 도구(예: phpMyAdmin, HeidiSQL 등)를 사용하여 그누보드 데이터베이스에 접속합니다.
  2. 테이블 조회: g5_point 테이블을 선택하여 데이터를 조회합니다.
  3. 데이터 구조 확인: po_rel_id 또는 po_rel_table 컬럼과 함께 po_content 내용을 확인합니다.
    • 수정 전에는 게시물 번호($wr_id)만 기록되었으나, 수정 후에는 insert_point 함수의 인자 설정에 따라 게시물번호|파일번호 형태로 기록됩니다.
    • 예: 7|0 (7번 게시물의 0번 첨부파일), 7|1 (7번 게시물의 1번 첨부파일)

참고 사항

  • insert_point 함수는 lib/common.lib.php 파일에 정의되어 있으며, 포인트 내역 기록 시 po_rel_id 인자에 전달된 값이 DB에 저장됩니다.
  • 포인트 내역은 한 번 기록되면 별도의 DB 백업본 없이는 복구가 불가능하므로, 테스트 시 주의가 필요합니다.
  • 만약 포인트가 정상적으로 차감되지 않거나 내역이 기록되지 않는다면, bbs/download.php 파일에서 수정된 insert_point 함수의 인자값이 올바르게 전달되고 있는지 확인해야 합니다.

다중 첨부파일 다운로드 시 파일별 포인트 개별 차감 설정

그누보드 기본 설정은 게시물당 1회만 포인트가 차감되도록 되어 있습니다. 이를 각 파일마다 개별 차감되도록 수정하려면 bbs/download.php 파일의 세션 체크와 포인트 기록 로직을 수정해야 합니다.

상황별 판단 및 행동

내 상황선택 기준다음 행동
코드 수정 시작 전데이터 안전 확보bbs/download.php 파일 원본 백업
다중 파일 개별 차감 적용세션 및 DB 기록 분리세션 이름과 insert_point 인자에 .$no 추가
수정 후 기능 검증포인트 내역 확인g5_point 테이블에서 po_rel_id 필드 값 확인

실전 FAQ

Q. 수정 후 포인트가 파일별로 차감되는지 어떻게 확인하나요? A. DB 관리 도구(phpMyAdmin 등)로 g5_point 테이블을 조회하십시오. po_rel_id 컬럼에 게시물번호|파일번호(예: 7|0) 형태로 기록되어 있다면 정상적으로 개별 차감되고 있는 것입니다.

Q. 수정 후 다운로드가 안 되거나 오류가 발생하면 어떻게 하나요? A. 즉시 백업해둔 bbs/download.php 원본 파일을 서버에 덮어씌워 복구하십시오. 이후 코드의 문법 오류나 파일 경로가 정확한지 다시 확인해야 합니다.

Q. 특정 게시판에만 이 기능을 적용할 수 있나요? A. 네, 수정하려는 코드 블록을 if ($bo_table == '게시판아이디') {... } 조건문으로 감싸면 해당 게시판에만 기능을 제한적으로 적용할 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.