BOARD

팁·활용

그누보드 특정 게시판 글 삭제 시 포인트 반환 제외 설정 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 45회 작성일 26-09-23 09:45

본문

그누보드 특정 게시판 글 삭제 시 포인트 반환 제외 설정 방법

그누보드5 환경에서 특정 게시판의 글을 삭제할 때 차감되었던 포인트가 자동으로 복원되지 않도록 소스 코드를 수정하고 설정하는 방법을 안내합니다.

그누보드 글 삭제 시 포인트 자동 반환 원인과 관련 파일

그누보드 기본 로직에서는 사용자가 글을 삭제할 때 차감되었던 포인트를 다시 돌려주는 포인트 반환 함수가 실행되도록 설계되어 있습니다. 이로 인해 글쓰기 시 포인트를 차감하더라도 글을 삭제하면 포인트가 자동으로 복원됩니다.

관련 파일 위치

포인트 반환 로직이 포함되어 있어 수정해야 하는 파일은 다음과 같습니다.

  • bbs/delete.php
  • bbs/delete_all.php

두 파일의 차이점은 bbs/delete.php는 일반 사용자가 글을 삭제할 때 영향을 미치며, bbs/delete_all.php는 관리자가 게시판 목록에서 선택삭제를 실행할 때 영향을 미치는 파일입니다.

관련 코드 확인

위 파일들에서 아래의 원글 포인트 삭제 코드를 확인할 수 있습니다.

// 원글 포인트 삭제
if (!delete_point($row['mb_id'], $bo_table, $row['wr_id'], '쓰기'))
    insert_point($row['mb_id'], $board['bo_write_point'] * (-1), "{$board['bo_subject']} {$row['wr_id']} 글삭제");

이 코드가 실행되어 포인트가 반환됩니다. 특정 게시판 예외 처리나 전체 제외 방법은 아래 질문에서 상세히 안내합니다.

특정 게시판 글 삭제 시 포인트 반환 예외 처리 방법

그누보드5 기본 로직에서는 글을 삭제하면 차감되었던 포인트가 자동으로 반환됩니다. 특정 게시판(예: 자유게시판, free)에서 글 삭제 시 포인트가 반환되지 않도록 예외 처리하려면 관련 파일의 소스코드를 수정해야 합니다.

1. 수정할 파일 위치

포인트 반환 로직이 포함된 아래 두 파일을 수정해야 합니다.

  • bbs/delete.php
  • bbs/delete_all.php

참고: delete_all.php 파일은 사용자가 직접 접근하는 파일이 아니며, 관리자가 게시판 목록에서 선택 삭제를 실행할 때 영향을 주는 파일입니다.

2. 소스코드 수정 방법

위 두 파일에서 아래의 원글 포인트 삭제 코드를 찾습니다.

// 원글 포인트 삭제
if (!delete_point($row['mb_id'], $bo_table, $row['wr_id'], '쓰기'))
    insert_point($row['mb_id'], $board['bo_write_point'] * (-1), "{$board['bo_subject']} {$row['wr_id']} 글삭제");
특정 게시판 ID 직접 지정하기 (예: 자유게시판 free)

자유게시판 등 특정 게시판 ID에서만 포인트 반환을 제외하려면, 조건문 앞에 $bo_table != 'free' 조건을 추가합니다.

if ($bo_table != 'free' && !delete_point($row['mb_id'], $bo_table, $row['wr_id'], '쓰기'))
    insert_point($row['mb_id'], $board['bo_write_point'] * (-1), "{$board['bo_subject']} {$row['wr_id']} 글삭제");
게시판 설정 여분 필드(bo_1) 활용하기

적용해야 할 게시판이 많고 수시로 변경해야 하는 상황이라면 게시판 설정의 여분 필드를 활용할 수 있습니다.

  1. 제외하고 싶은 해당 게시판의 설정에서 여분필드 1번 값을 1로 입력합니다. (여분필드 1 제목은 원하는 문구로 지정 가능합니다.)
  2. bbs/delete.php와 bbs/delete_all.php 파일의 코드를 아래와 같이 변경합니다.
if ($board['bo_1'] != 1 && !delete_point($row['mb_id'], $bo_table, $row['wr_id'], '쓰기'))

주의: 여분 필드 활용 시 기존에 다른 용도로 사용 중인 필드와의 충돌 가능성이 있으므로 사용 중인 환경을 먼저 확인해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.