BOARD

팁·활용

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

페이지 정보

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

본문

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

그누보드에서 게시물을 복사할 때 추천 및 비추천 수와 관련 로그 데이터가 함께 복사되지 않는 문제를 해결하고, 데이터 무결성을 유지하는 방법을 안내합니다.

게시물 복사 시 추천 및 비추천 데이터 누락 해결 방법

그누보드에서 게시물 복사 시 추천 및 비추천 수치와 상세 내역(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 원본 파일을 다시 업로드하여 덮어쓰면 즉시 복구됩니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.