BOARD

팁·활용

그누보드 게시물 수정 시 작성 날짜(wrdatetime)를 현재 시간으로 갱신하는 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 6회 작성일 26-10-17 15:42

본문

그누보드 게시물 수정 시 작성 날짜(wr_datetime)를 현재 시간으로 갱신하는 방법

그누보드 운영자 및 개발자가 기존 게시물을 수정할 때 작성 날짜(wr_datetime)를 현재 시간으로 갱신하여 최신글 상단에 노출되도록 설정하는 방법을 안내합니다.

게시물 수정 시 작성 날짜(wr_datetime)를 현재 시간으로 갱신하는 방법

그누보드에서 관리자가 기존 게시물을 수정할 때 작성 날짜(wr_datetime)를 현재 시간으로 갱신하려면, 대상 게시판 스킨 폴더에 write_update.skin.php 파일을 생성하고 관리자 권한과 수정 모드 조건에 맞는 SQL 쿼리를 추가해야 합니다.

1. 게시판 스킨 폴더에 write_update.skin.php 추가

사용 중인 게시판 스킨 폴더(예: skin/board/스킨이름) 내에 write_update.skin.php 파일을 생성하고 아래 코드를 작성합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if ($is_admin && $w == 'u') {
 sql_query(" update $write_table set wr_datetime = '".G5_TIME_YMDHIS."' where wr_id = '$wr_id' ");
}
?>
  • $is_admin: 관리자 권한 여부를 확인합니다.
  • $w == 'u': 기존 글을 수정하는 모드일 때만 동작하도록 제한합니다.
  • G5_TIME_YMDHIS: 현재 날짜와 시간 값을 반환하는 그누보드 상수입니다.

2. 게시판 설정 변경

수정한 날짜를 기준으로 게시물이 상단에 오도록 하려면 관리자 페이지의 게시판 설정에서 리스트 정렬 필드를 날짜(최근 것부터) 순으로 선택합니다.

게시물 수정 시 작성 날짜(wr_datetime)를 현재 시간으로 갱신하는 방법

그누보드에서 관리자가 기존 게시물을 수정할 때 작성 날짜(wr_datetime)를 현재 시간으로 갱신하려면 게시판 스킨 폴더에 write_update.skin.php 파일을 추가하고 코드를 작성해야 합니다.

1. 적용 위치 및 파일 생성

사용 중인 게시판 스킨 폴더(예: skin/board/스킨이름) 내에 write_update.skin.php 파일을 생성합니다.

2. 코드 작성 방법

생성한 파일에 아래 코드를 추가합니다. 이 코드는 일반 회원이 아닌 관리자 권한($is_admin)이며 글 수정 모드($w == 'u')일 때만 동작합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if ($is_admin && $w == 'u') {
 sql_query(" update $write_table set wr_datetime = '".G5_TIME_YMDHIS."' where wr_id = '$wr_id' ");
}
?>

3. 조건 및 설정 확인

  • 관리자 권한 확인: $is_admin 조건은 일반 사용자가 아닌 관리자 기준으로만 기능이 동작하도록 제한합니다.
  • 수정 모드 확인: $w == 'u' 조건은 새 글 작성 시가 아니라 기존 글을 수정하는 모드일 때만 쿼리가 실행되도록 보장합니다.
  • 리스트 정렬 설정: 작성 날짜가 갱신된 후 최신글 목록 상단에 노출되도록 하려면, 게시판 관리 설정의 리스트 정렬 필드를 날짜 최근 것부터로 선택해야 합니다.

게시판 설정 변경 방법

작성 날짜를 현재 시간으로 갱신한 뒤 최신글 목록 상단에 노출되도록 하려면 게시판 관리 설정에서 정렬 방식을 변경해야 합니다.

  • 게시판 설정의 정렬 옵션(리스트 정렬 필드)에서 날짜 최근 것부터(최근 날짜순)로 선택합니다.

기존 작성일(wr_datetime)을 유지하면서 별도의 수정 일시를 기록하려면, 그누보드의 여분 필드(예: wr_1)를 활용하여 수정 시점에 해당 필드에 현재 시간을 저장하는 로직을 추가해야 합니다.

구현 방법

게시판 스킨 폴더에 write_update.skin.php 파일을 생성하고 아래와 같은 코드를 추가합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 글 수정 시 수정 일시를 여분 필드(wr_1)에 기록
if ($w == 'u') {
 sql_query(" update $write_table set wr_1 = '".G5_TIME_YMDHIS."' where wr_id = '$wr_id' ");
}
?>

참고 사항

  • 필드 활용: wr_1 외에도 사용하지 않는 다른 여분 필드를 선택하여 사용할 수 있습니다.
  • 데이터 확인: 위와 같이 설정하면 게시글 수정 시마다 wr_1 필드에 수정 시각이 갱신되어 저장됩니다. 이후 목록(list.skin.php)이나 본문(view.skin.php) 페이지에서 해당 필드를 호출하여 출력하면 됩니다.
  • 주의: 이 방식은 수정할 때마다 값이 갱신되므로, 최초 등록일은 wr_datetime으로, 마지막 수정일은 wr_1으로 구분하여 관리할 수 있습니다.

상황별 판단 가이드

  • 내 상황: 관리자가 기존 게시물을 수정할 때 작성 날짜(wr_datetime)를 현재 시간으로 갱신하고 싶다.
  • 선택 기준: 관리자 권한($is_admin)과 수정 모드($w == 'u')일 때만 동작하도록 제한하여 일반 사용자 수정 시 날짜가 바뀌지 않게 한다.
  • 다음 행동: 게시판 스킨 폴더에 write_update.skin.php 파일을 생성하여 sql_query로 wr_datetime을 G5_TIME_YMDHIS로 업데이트하고, 게시판 설정에서 리스트 정렬 필드를 최근 날짜순으로 변경한다.

실전 FAQ

  • Q. 수정 시 날짜가 갱신되지 않아요.
    • 막히는 점: write_update.skin.php 파일이 올바른 스킨 폴더에 위치하는지 확인하세요. 조건문($is_admin && $w == 'u')이 누락되면 의도치 않은 시점에 날짜가 변경될 수 있습니다.
  • Q. 최초 등록일은 유지하고 수정일만 따로 기록하려면?
    • 대안: wr_datetime 대신 wr_1과 같은 여분 필드를 활용하세요. 수정 모드($w == 'u')일 때 해당 필드에 G5_TIME_YMDHIS를 저장하면 최초 등록일과 수정일을 구분하여 관리할 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.