방법중의 하나는 효율이 좀 떨어져 보일 수는 있으나 뭐 성능상 별 무리는 없어 보일 것 같아 여러 방법 중 하나가..
XE는 안타깝게 댓글은 사용자정의 값 같은 것을 추가해 줄 수가 없습니다.
댓글마다 추가적인 값을 저장하려해도 약속된 공간이 없어 이런 기능을 구현하려고 할때 별도 모듈을 통해 db를 만들고 댓글과 연결하는 방식을 하는 듯 합니다.
문서가 가지는 여러 필드 중 extra_vars 라는 필드가 있습니다.
이건 저희가 흔히 알고 있는 사용자정의와 다른 것 입니다. 저희가 사용하는 사용자정의(확장변수) 는 문서테이블에 문서가 가지고 있는 필드가 아닌 별도로 사용자정의 테이블이 따로 있습니다.
제가 말한 extra_vars 공간에는 문서와 연관된 무언가를 기록할 수 있는 공간으로 활용할 수 있습니다.
대표적인 사례가 문서추천인,문서읽은사람 등을 표시해주고자 명단을 확인될때 마다 이 공간에 회원번호를 기록해서 문서에서 보여줄 수 있습니다.
포인트팡팡의 경우는 포인트팡팡으로 지급된 포인트를 댓글번호와 함께 기록해서 댓글 삭제시 이를 참조합니다.
각 자료별로 라벨을 사용해서 공용으로 쓰는 방식이니 어떠한 것도 기록이 가능합니다.
제 생각은 애드온으로 구현한다면
문서의 첫번째 댓글이 달릴때
해당 공간에 댓글번호,연번 1을 기록하고
문서에 두번째 댓글이 달리면
위 필드의 해당 라벨의 값을 불러와 마지막 값의 연번을 확인 후 +1의 값을 해서
해당 공간에 댓글번호,연번 을 기록하고...
댓글을 출력하는 스킨에서는 각 댓글 번호를 위 필드의 값을 확인해서 댓글번호와 매칭되는 연번을 출력해 줍니다.
그리고 대댓글의 경우 자기 연번은 위와 같이 출력하고 누구에 대한 대댓글인지는 원댓글의 댓글번호로 위 extra_vars 필드에서 연번을 찾아낼 수 있을 겁니다. 몇번 댓글에 대한 답 댓글인지 표현이 가능 할 것이구요.
댓글이 삭제될 경우는 extra_vars 에 해당 라벨에 소속된 해당 댓글번호에 해당하는 항목만 지워주면 될 것 같구요.
제가 알기로는 대댓글이 있으면 원댓글은 못지우니 누구를 향한 댓글인지 의 값이 없어지는 일도 발생하지는 않을 듯 합니다.
댓글의 연번만 출력하는 것이 아닌 몇번 댓글에 대한 표현까지 하려면 이런 방법도 있지 않나 하는 생각을 해봤습니다.
더쿠넷에서 하는 글쓴이의 댓글은 원덬, 순서대로는 1덬, 같은 글 안에서 댓글을 여러개 작성할때 21덬=35덬 이런식의 표현도 모두 가능할 것 같습니다.
물론 코어에서 댓글이 값을 가지게 해주면 쉽겠지만 그렇지 않은 경우 이런 방법도 있지 않을까 해서요.
물론 제 생각이 굉장히 쓸데 없고 황당할 수 도 있습니다. 저는 서버성능이나 php 성능 등에는 전혀 알지 못하는 사람이니 상상이라고 생각해주세요.
일단 스킨 단에서 번호 매기기 작성자(제한적) 표시까지 해봤습니다