방법중의 하나는 효율이 좀 떨어져 보일 수는 있으나 뭐 성능상 별 무리는 없어 보일 것 같아 여러 방법 중 하나가..

 

XE는 안타깝게 댓글은 사용자정의 값 같은 것을 추가해 줄 수가 없습니다.

 

댓글마다 추가적인 값을 저장하려해도 약속된 공간이 없어 이런 기능을 구현하려고 할때 별도 모듈을 통해 db를 만들고 댓글과 연결하는 방식을 하는 듯 합니다.

 

문서가 가지는 여러 필드 중  extra_vars  라는 필드가 있습니다.

이건 저희가 흔히 알고 있는 사용자정의와 다른 것 입니다. 저희가 사용하는 사용자정의(확장변수) 는 문서테이블에 문서가 가지고 있는 필드가 아닌 별도로 사용자정의 테이블이 따로 있습니다.

 

제가 말한  extra_vars  공간에는 문서와 연관된 무언가를 기록할 수 있는 공간으로 활용할 수 있습니다.

대표적인 사례가 문서추천인,문서읽은사람 등을 표시해주고자 명단을 확인될때 마다 이 공간에 회원번호를 기록해서 문서에서 보여줄 수 있습니다.

포인트팡팡의 경우는 포인트팡팡으로 지급된 포인트를 댓글번호와 함께 기록해서 댓글 삭제시 이를 참조합니다.

 

각 자료별로 라벨을 사용해서 공용으로 쓰는 방식이니 어떠한 것도 기록이 가능합니다.

 

제 생각은 애드온으로 구현한다면

 

문서의 첫번째 댓글이 달릴때 

해당 공간에 댓글번호,연번 1을 기록하고

 

문서에 두번째 댓글이 달리면 

위 필드의 해당 라벨의 값을 불러와 마지막 값의 연번을 확인 후 +1의 값을 해서 

해당 공간에 댓글번호,연번 을 기록하고...

 

 

댓글을 출력하는 스킨에서는 각 댓글 번호를 위 필드의 값을 확인해서 댓글번호와 매칭되는 연번을 출력해 줍니다.

 

 

그리고 대댓글의 경우 자기 연번은 위와 같이 출력하고 누구에 대한 대댓글인지는 원댓글의 댓글번호로 위  extra_vars  필드에서 연번을 찾아낼 수 있을 겁니다. 몇번 댓글에 대한 답 댓글인지 표현이 가능 할 것이구요.

 

 

댓글이 삭제될 경우는  extra_vars  에 해당 라벨에 소속된 해당 댓글번호에 해당하는 항목만 지워주면 될 것 같구요.

 

 

제가 알기로는 대댓글이 있으면 원댓글은 못지우니 누구를 향한 댓글인지 의 값이 없어지는 일도 발생하지는 않을 듯 합니다.

 

 

댓글의 연번만 출력하는 것이 아닌 몇번 댓글에 대한 표현까지 하려면 이런 방법도 있지 않나 하는 생각을 해봤습니다.

 

더쿠넷에서 하는 글쓴이의 댓글은 원덬, 순서대로는 1덬, 같은 글 안에서 댓글을 여러개 작성할때 21덬=35덬 이런식의 표현도 모두 가능할 것 같습니다.

 

물론 코어에서 댓글이 값을 가지게 해주면 쉽겠지만 그렇지 않은 경우 이런 방법도 있지 않을까 해서요.

 

물론 제 생각이 굉장히 쓸데 없고 황당할 수 도 있습니다. 저는 서버성능이나 php 성능 등에는 전혀 알지 못하는 사람이니 상상이라고 생각해주세요.

  • ? Lv7

    일단 스킨 단에서 번호 매기기 작성자(제한적) 표시까지 해봤습니다

    댓글번호대상2.PNG

  • ? Lv7 ?

    와.. 대단하네요. 이슈가 나오자마자 반영하시다니 ㄷㄷㄷㄷ 존경합니다!

  • ? Lv7 Lv30
    제가 제안한 방법으로 하셨나요?
  • Lv30 ? Lv7
    아뇨아뇨 아무 변수 안건드리고 스킨단에서 그냥 했습니다
  • ? Lv7 Lv30

    기록을 해두면 출력할때 좀 빠르고 편하게 사용할 수 있어 기록을 해버리는 것을 생각해 낸 것입니다. 다른 방법으로 구현하셨군요.

    페이지에서 새로 계산해야 하는것도 복잡할텐데 잘하셨나보네요

  • Lv30 Lv19
    페이지 계산은 연번에 $comment_count * ($cpage-1) 를 더해주면 되는데요.
    $comment_count는 모듈 설정($module_config 같은 것)에서 불러와야 하구요.

    문제는 리스트 중간에 댓글이나 대댓글이 삭제되면 (삭제된 댓글이라고 자리를 남겨두지 않는 이상) 연번이 유동화되는 현상이 있을 것 같더군요.
    물론 연번이 유동화되어도 괜찮다면 그 자체로 추진해도 무방하기는 하겠지만요.

    암튼 말씀하신대로 extra_vars 필드를 활용해서 별도로 연번을 기록해두는 게 가장 안정적인 방법일 것 같기는 합니다.
  • Lv19 Lv30
    중간에 있던 대댓글이 사라져서 그 연번이 없어지는건 큰 문제가 안되 보이는데요. 페이지가 나눠지면 굉장히 복잡해 질 것 같다는 생각만 드네요.... 그래서 그냥 기록하자! ㅋㅋ
  • Lv30 ? Lv7
    https://xetown.com/rxe_tip/1075021
    이 방법으로 해서 페이지 바뀌어도 잘 나옵니다
    댓글이 엄청 많아지면 서버가 힘들어 할까요 ㅎ