그 게시글의 가장 최근 댓글 시간 뽑아내기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

그 게시글의 가장 최근 댓글 시간 뽑아내기 정보

그 게시글의 가장 최근 댓글 시간 뽑아내기

본문

요즘 포럼용 게시판을 만들면서 알아낸 팁입니다.

본글이든 댓글이든 가장 최근에 달린 순서대로 목록출력되는 기능은 이미 그누보드에 있습니다.
(모르시는 분을 위해 알려드리면 게시판관리설정에서 '리스트 정렬 필드 → wr_last desc : 최근글 최근것 부터')

그런데 이렇게 해도 목록에 나오는 글쓴시간은 여전히 최초 원글의 작성시간이죠. (아닌가? -_-;;)

이걸 댓글이든 원글이든 가장 최근 작성시간을 뽑아내는 팁입니다.
역시 이미 그누보드 자체에 있었습니다. 아주 간단하더군요.

<?=$list[$i][last]?>
<?=$list[$i][last2]?>
<?=$list[$i][wr_last]?>

세개 다 쓸 수 있습니다. 각각 아래처럼 나옵니다.

2006-11-07
11:50 (오늘이면 시간, 오늘 지나면 날짜)
2006-11-07 11:50:32


*******************

참고로 날짜 출력하는 방식을 좀 더 바꾸고 싶으면 lib/common.lib.php를 손봅니다.
아래와 같은 소스가 작성시간에 관계된 대목입니다. (바로 위는 댓글관련)

    // 당일인 경우 시간으로 표시함
    $list['datetime'] = substr($list['wr_datetime'],0,10);
    $list['datetime2'] = $list['wr_datetime'];
    if ($list['datetime'] == $g4['time_ymd'])
        $list['datetime2'] = substr($list['datetime2'],11,5);
    else
        $list['datetime2'] = substr($list['datetime2'],5,5);
    // 4.1
    $list['last'] = substr($list['wr_last'],0,10);
    $list['last1'] = substr($list['wr_last'],0,16); ////제가 추가한 소스입니다.
    $list['last2'] = $list['wr_last'];
    if ($list['last'] == $g4['time_ymd'])
        $list['last2'] = substr($list['last2'],11,5);
    else
        $list['last2'] = substr($list['last2'],5,5);


전 여기에

    $list['last1'] = substr($list['wr_last'],0,16);

이걸 추가해서 '2006-11-07 11:50' 이런 식으로 뽑아냈습니다. (<?=$list[$i][last1]?>)


*********************

내친 김에 더 알려드립니다. (초보분들만 보삼~~)

원래 시간을 뽑게 되면 '2006-11-07 11:50:32' 이런 식이 풀옵션(?)입니다. 즉 '년-월-일 시:분:초'
그누보드에서는 $wr_datetime 혹은 $wr_last가 그 변수네요.
여기서 필요한 글자만 잘라내는 소스가

substr(); // 이거거든요.


가령 '2006-11-07 11:50:32'에서 '년-월-일'만 쓰고 싶다면 맨앞(0번)에서 10자리까지만 뽑으면 되겠죠? (단 하이픈(-)도 문자 하나로 칩니다)
그 명령어가 아래입니다.

    $list['datetime'] = substr($list['wr_datetime'],0,10); //// 0은 번호, 10은 자릿수
    $list['last'] = substr($list['wr_last'],0,10);


첫번째 소스를 해석하면 $list['wr_datetime']의 첫번재 문자(2)부터 10자리를 끊어서 $list['datetime']라고 한다..입니다. (프로그램어는 보통 시작을 1이 아니라 0으로 하더군요)


그리고 '2006-11-07 11:50:32'에서 날짜는 놔두고 '시:분(11:50)'만 뽑고 싶다면 '년-월-일(공백) '이 차지하는 11자리(번호상으론 0부터 10까지)를 건너뛰고 11번 문자(1)부터 5자리를 끊으면 되겠죠. (공백도 문자 하나)

    $list['datetime2'] = substr($list['wr_datetime'],11,5); //// 11은 번호, 5은 자릿수
    $list['last2'] = substr($list['wr_last'],11,5);


제가 추가한 $list['last1']는 '년-월-일 시:분'까지 뽑아내는 겁니다.

    $list['last1'] = substr($list['wr_last'],0,16);


참고로 substr(); 는 숫자말고도 일반 문자를 자를 때도 씁니다.
저도 이제 php를 한참 배우는 입장이지만 초보의 입장에서 주제넘은 강의를 해봤습니다^^;
추천
0

댓글 6개

전 여기에

    $list['last1'] = substr($list['wr_last'],0,16);

    $list['name1'] = substr($list['wr_name']);


출력부는 적당히 가공

 $list[$][wr_1] = $list[name1]; 정도로 하면 안나올까요?....
죄송합니다...해당 글에 제일나중에 작성된 글의 작성자를 넣는 필드가 없으므로 목록에서 별도로 쿼리를 하셔야 할듯 합니다....ㅠ.ㅠ
안 그래도 그렇게 해야겠다고 생각했습니다^^;;

근데 제가 쿼리 뽑는 걸 아직 마스터하질 못해서 그런데 대략 알 수 없을까요? ㅜㅜ
물론 저도 나름대로 알아보겠습니다만....;;;
전체 276 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT