댓글 내용 반영하였습니다.

 

댓글 목록을 가져오는 html 파일 첫 부분에 DB에서 전체 댓글의 comment_srl을 regdate순으로 추출합니다. DB 프리픽스는 각자 상황에 맞게 변경해야 합니다.

 

{@
$oDB = &DB::getInstance();
$query = $oDB->_query('select comment_srl from xe_comments where document_srl = '.$document_srl.' order by regdate');
$result = $oDB->_fetch($query);
$no = null;
foreach($result as $k => $c):
$no[] = $c->comment_srl;
endforeach;
array_flip($no);
}

 

그리고 댓글을 출력하는 영역의 원하는 위치에 댓글의 comment_srl과 대응되는 번호를 출력합니다.

 

{$no[$comment->comment_srl]+1}

 

스타일을 주기 위해 클래스를 준다면 이런 식으로 하면 됩니다.

 

<span class="클래스명">{$no[$comment->comment_srl]+1}</span>

 

추가로 원하는 다양한 접미어를 붙여서 사용할 수도 있습니다.

 

<span class="클래스명">{$no[$comment->comment_srl]+1}번 댓글</span>

 

  • profile
    다음 업데이트를 위한 도약같군요~
  • ?
    아플로스 게시판 잘 쓰고 있습니다. 너무 이쁘고 기능도 좋고 피드백도 좋아서 대만족 중이에요.
  • profile

    쿼리할 때 ORDER BY를 하지 않으셨는데요. 그러면 저 순서가 맞다는 보장이 없습니다. 댓글 수가 적을 때는 대체로 맞게 나오겠지만, 댓글 수가 많아지거나 첨부파일이 끼어들어서 시퀀스 순서가 어긋나면 저것도 틀릴 수 있어요.

     

    regdate만을 기준으로 순서를 판단하기 때문에, 초 단위까지 똑같은 시간에 댓글 2개가 등록되면 둘 다 같은 번호로 표시되겠네요. 1 2 3 3 5 6 이런 식?

  • profile ?
    그러면 comment_srl을 추출하는데 order by regdate로 추출하고
    따로 정렬할 필요는 없이 그냥 쓰면 되겠군요
  • ? profile

    네, regdate로 정렬하고 comment_srl을 추출하면 제가 말씀드린 두 가지 문제 모두 해결되겠네요.

    한 가지 더... 댓글 수가 많으면 array_search가 느려질 수도 있습니다. 키가 아닌 값으로 검색하면 인덱스 타지 않는 DB 검색과 똑같은 알고리즘이 되어 버려서요... $no 배열을 생성한 직후에 array_flip으로 키와 값을 뒤집어 주고, 각각의 댓글 번호를 출력하는 부분에서는 {$no[$comment->comment_srl] + 1}으로 배열 키를 직접 참조하면 성능이 개선됩니다^^

  • profile ?
    감사합니다~! 많이 배워갑니다 ㅎㅎㅎ
    반영하여 내용 수정하겠습니다 ㅎㅎ
  • profile

    제 생각에는 list_order나 comment_srl로 정렬하는 게 좋을 것 같습니다.
    그리고 comment 모듈에 document_srl로 테이블 정보 가져오는 쿼리 xml이 있었던 걸로 기억하는데, 이걸 지원해주는 내장 함수가 있는지는 잘 모르겠네요.

  • profile ?
    그러면 comment_srl을 추출하는데 order by regdate로 추출하고
    따로 정렬할 필요는 없이 그냥 쓰면 되겠군요
  • profile
    좋은 정보 감사합니다.