BOARD

문제 해결

그누보드 그룹별 최신글 반복 출력 및 캐시 반영 지연 해결 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 20회 작성일 26-09-13 01:03

본문

그누보드 그룹별 최신글 반복 출력 및 캐시 반영 지연 해결 방법

그누보드에서 그룹별 최신글이 반복해서 출력되거나 새 글 등록 후 캐시 반영이 지연되는 현상의 원인을 파악하고, 최신글 함수 위치 수정 및 캐시 삭제 함수 코어 수정 방법과 백업·복구 절차를 확인합니다.

그누보드 그룹별 최신글 반복 출력 원인과 해결 방법

그룹별 최신글 스킨을 적용했을 때 게시물이 의도와 다르게 반복해서 출력되는 현상은 최신글을 추출하는 latest() 함수 코드가 데이터 조회용 반복문(Loop) 내부에 잘못 배치되었기 때문에 발생합니다.

올바른 함수 배치 및 수정 방법

최신글을 불러오는 latest() 함수가 루프 내부에 포함되어 있는지 확인해야 합니다. 해당 코드가 루프 내부에 있으면 반복해서 출력이 일어나므로, 코드를 루프 외부로 이동하거나 별도로 분리해야 합니다.

  • 잘못된 예 (루프 내부에 최신글 함수가 포함된 경우)
for ($i=0; $row=sql_fetch_array($result); $i++) {
    echo latest("basic", $row['bo_table'], 5, 25);
}

위와 같이 데이터 조회 루프 안에서 최신글 함수를 호출하고 있다면, 이를 루프 바깥쪽으로 분리하여 의도한 위치에 한 번만 출력되도록 코드를 수정해야 합니다.

그누보드 캐시 반영 지연 해결을 위한 delete_cache_latest 함수 수정 방법

새 글이 등록되거나 삭제되어도 캐시 때문에 최신글 목록에 바로 반영되지 않고 지연되는 현상은 캐시 파일 삭제 함수에 그룹 캐시 관련 삭제 로직이 누락되었기 때문에 발생합니다. 이를 해결하기 위해 /lib/common.lib.php 파일 내의 캐시 삭제 함수에 그룹 캐시 삭제 코드를 추가해야 합니다.

사전 주의사항

  • 코어 파일을 직접 수정하는 작업이므로 수정 전 반드시 원본 파일을 백업하시기 바랍니다.

수정 코드 예시

/lib/common.lib.php 파일 안의 delete_cache_latest 함수를 찾아 아래 예시와 같이 그룹 캐시 삭제 로직($files2 관련 코드)을 추가합니다.

// /lib/common.lib.php 파일 내의 delete_cache_latest 함수 수정 예시
function delete_cache_latest($bo_table) {
    $files = glob(G5_DATA_PATH.'/cache/latest-'.$bo_table.'-*');
    if (is_array($files)) {
        foreach ($files as $filename) unlink($filename);
    }
    $files2 = glob(G5_DATA_PATH.'/cache/latest-group-*');
    if (is_array($files2)) {
        foreach ($files2 as $filename) unlink($filename);
    }
}

적용 후 확인

코드를 수정한 후 새로운 게시물을 작성하거나 삭제하여 최신글 목록과 그룹별 캐시가 지연 없이 즉시 반영되는지 확인합니다. 오류 발생 시 복구 절차는 아래 '코어 파일 수정 시 주의사항'을 참고하십시오.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.