그누보드 게시물 복사 시 추천·비추천 데이터 누락 해결 방법
페이지 정보

본문
그누보드에서 게시물을 복사할 때 추천 및 비추천 수와 관련 로그 데이터가 함께 복사되지 않는 문제를 해결하고, 데이터 무결성을 유지하는 방법을 안내합니다.
게시물 복사 시 추천 및 비추천 데이터 누락 해결 방법
그누보드에서 게시물 복사 시 추천 및 비추천 수치와 상세 내역(g5_board_good 테이블)이 누락되는 문제는 bbs/move_update.php 파일의 로직을 수정하여 해결할 수 있습니다. 수정 전 반드시 해당 파일을 백업하시기 바랍니다.
1. 추천/비추천 수치 반영 수정
bbs/move_update.php 파일 내에서 게시물 정보를 업데이트하는 코드를 찾아 원본의 수치가 복사본에 전달되도록 수정합니다.
- 수정 위치:
bbs/move_update.php내wr_good,wr_nogood관련 코드 - 수정 내용:
// 수정 전 wr_good = '{$wr_good}', wr_nogood = '{$wr_nogood}', // 수정 후 wr_good = '{$row2['wr_good']}', wr_nogood = '{$row2['wr_nogood']}',
2. 추천/비추천 상세 데이터 복사
목록에서 수치가 표시되더라도 g5_board_good 테이블에 데이터가 없으면 중복 추천 방지 등의 기능이 정상 작동하지 않습니다. 이를 위해 if($sw == "copy") 조건문 블록 내에 아래의 SQL 쿼리를 추가합니다.
- 추가 코드:
if($sw == "copy") { sql_query(" insert into {$g5['board_good_table']} ( bo_table, wr_id, mb_id, bg_flag, bg_datetime ) select '$move_bo_table', '$insert_id', mb_id, bg_flag, bg_datetime from {$g5['board_good_table']} where bo_table = '$bo_table' and wr_id = '{$row2['wr_id']}' "); }
3. 적용 후 확인 및 주의사항
- 데이터 검증: 수정 후 게시물을 복사하여 복사본 게시물에서 추천/비추천 버튼을 눌렀을 때, 이미 추천한 상태로 표시되거나 중복 추천이 방지되는지 확인합니다.
- 백업: 코드 수정 전
bbs/move_update.php파일을 별도 경로에 복사하여 보관하십시오. 문제가 발생할 경우 원본 파일로 즉시 복구할 수 있습니다. - 데이터 무결성:
g5_board_good테이블은 중복 추천 방지 용도이므로, 대량의 데이터 복사 시 DB 부하가 발생할 수 있습니다. 운영 중인 사이트의 데이터 규모를 고려하여 적용하십시오.
게시물 복사 시 추천 및 비추천 데이터 누락 해결 방법
그누보드에서 게시물 복사 시 추천 및 비추천 데이터가 누락되는 현상은 bbs/move_update.php 파일 내 복사 로직에서 관련 필드와 테이블 데이터 처리가 누락되어 발생합니다. 이를 해결하기 위해 다음 두 가지 작업을 수행해야 합니다.
1. 추천/비추천 필드 값 수정
bbs/move_update.php 파일에서 게시물 복사 시 추천(wr_good)과 비추천(wr_nogood) 값이 원본 게시물로부터 정상적으로 전달되도록 코드를 수정합니다.
- 수정 위치:
bbs/move_update.php - 수정 내용:
// 기존 코드 wr_good = '{$wr_good}', wr_nogood = '{$wr_nogood}', // 수정 코드 wr_good = '{$row2['wr_good']}', wr_nogood = '{$row2['wr_nogood']}',
2. g5boardgood 테이블 데이터 복사 추가
위 수정만으로는 목록에 값은 표시되지만, 실제 추천/비추천 내역을 관리하는 g5_board_good 테이블에 데이터가 생성되지 않습니다. 이를 위해 복사 로직에 인서트 쿼리를 추가해야 합니다.
- 추가 위치:
bbs/move_update.php파일 내sql_query(" update $move_write_table set wr_parent = '$save_parent' where wr_id = '$insert_id' ");코드 바로 밑 - 추가 코드:
if($sw == "copy") { sql_query(" insert into {$g5['board_good_table']} ( bo_table, wr_id, mb_id, bg_flag, bg_datetime ) select '$move_bo_table', '$insert_id', mb_id, bg_flag, bg_datetime from {$g5['board_good_table']} where bo_table = '$bo_table' and wr_id = '{$row2['wr_id']}' "); }
주의사항
- 위 작업은 게시물 복사 시에만 적용되는 로직입니다. 수정 전 반드시
bbs/move_update.php파일을 백업하십시오. - 데이터베이스 직접 수정이 포함되므로, 작업 전
g5_board_good테이블을 포함한 전체 데이터베이스를 SQL로 내보내기(백업)한 후 진행하는 것을 권장합니다.
게시물 복사 시 조회수 및 첨부파일 데이터 처리
그누보드에서 게시물 복사 기능을 확장하여 조회수를 초기화하거나 첨부파일을 안전하게 복사하는 것은 운영 목적에 따라 추가적인 로직 수정이 필요합니다. 게시물 복사 로직은 bbs/move_update.php 파일에서 처리됩니다.
1. 조회수 초기화
복사된 게시물의 조회수를 0으로 초기화하려면 bbs/move_update.php 파일 내에서 게시물 데이터를 INSERT하는 쿼리 부분에 wr_hit 값을 0으로 명시해야 합니다.
- 적용 위치: 게시물 복사 시
INSERT쿼리가 실행되는 지점 - 수정 예시:
wr_hit = 0을 쿼리문에 포함하여 복사본 생성 시 조회수가 0으로 시작되도록 설정합니다.
2. 첨부파일 복사 및 파일명 중복 방지
게시물 복사 시 첨부파일을 그대로 복사하면 파일명이 중복되어 에러가 발생하거나 원본 파일과 충돌할 수 있습니다. 이를 방지하려면 파일명을 변경하여 복사해야 합니다.
- 원인: 동일한
bo_table내에서 파일명이 같으면 시스템이 파일을 덮어쓰거나 에러를 발생시킵니다. - 해결 방향:
bbs/move_update.php파일에서 첨부파일 복사 로직을 수정하여, 복사되는 파일명에 고유한 접미사(예:-1,-2등)를 붙이거나 새로운 파일명을 생성하도록 처리해야 합니다. - 참고 사항: 단순히 DB 데이터만 복사하는 것이 아니라, 실제 서버의
/data/file/게시판명/경로에 있는 물리적인 파일도 함께 복사하고 파일명을 변경하는 로직이 필요합니다.
주의사항
- 백업: 모든 수정 전에는 반드시
bbs/move_update.php파일을 백업하십시오. - 데이터 무결성: 조회수 초기화나 파일명 변경은 게시판의 데이터 구조에 직접적인 영향을 미치므로, 적용 후 반드시 테스트 게시판에서 복사 기능을 실행하여 결과가 의도대로 반영되는지 확인하십시오.
- 확장성:
run_event('bbs_move_copy',...)와 같은 이벤트를 활용하면 핵심 코드를 직접 수정하지 않고도 기능을 확장할 수 있는 경우가 있으므로, 사용 중인 그누보드 버전에 따라 관련 이벤트를 먼저 확인하는 것이 좋습니다.
게시물 복사 시 추천·비추천 데이터 누락 해결
그누보드에서 게시물 복사 시 추천수와 상세 내역(g5_board_good)이 누락되는 문제는 bbs/move_update.php 파일의 로직을 수정하여 해결할 수 있습니다.
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 게시물 복사 시 추천수 수치만 누락됨 | wr_good, wr_nogood 필드 값 전달 확인 | bbs/move_update.php 내 해당 변수를 $row2 배열 값으로 수정 |
| 목록엔 수치가 뜨나 중복 추천 방지가 안 됨 | g5_board_good 테이블 데이터 동기화 필요 | if($sw == "copy") 조건문 내에 INSERT 쿼리 추가 |
실전 FAQ
Q: 수정 후에도 추천/비추천 데이터가 복사되지 않습니다.
A: g5_board_good 테이블에 데이터를 삽입하는 INSERT 쿼리가 if($sw == "copy") 조건문 내부에 정확히 위치하는지 확인하십시오. 쿼리 실행 시 $move_bo_table과 $insert_id 변수가 올바르게 전달되고 있는지 체크가 필요합니다.
Q: 대량의 게시물을 복사할 때 주의할 점은 무엇인가요?
A: g5_board_good 테이블은 중복 추천 방지를 위한 상세 내역을 담고 있습니다. 게시물 수가 많을 경우 복사 시 DB 부하가 발생할 수 있으므로, 운영 중인 사이트의 데이터 규모를 고려하여 적용하십시오.
Q: 수정 후 문제가 생기면 어떻게 되돌리나요?
A: 작업 전 백업해둔 bbs/move_update.php 원본 파일을 다시 업로드하여 덮어쓰면 즉시 복구됩니다.
함께 보면 좋은 글
- 그누보드 공지사항 게시글에서 추천 및 비추천 버튼 숨기는 방법
- 그누보드 게시물 이동 및 복사 시 작성 시간을 현재 시간으로 갱신하는 방법
- 웹호스팅 환경에서 POST 데이터 전송 시 변수 누락 해결하기
참고자료
기타 참고자료
- 이전글그누보드 그룹 접근 권한 목록 페이지 차단 설정 26.10.05
- 다음글MySQL 쿼리 에러 발생 시 파일명과 라인 번호를 함께 출력하여 디버깅하는 방법 26.10.05
댓글목록
등록된 댓글이 없습니다.