언젠가 웹지기님께서도 불편을 토로하신 적이 있었는데요.

링크에 댓글의 id 속성이 anchor로 붙는 경우(예. 게시물 주소#comment_12345), 그리고 댓글의 양이 많아서 해당 댓글이 댓글 리스트의 기본 페이지에 있지 않고 다른 페이지에 있는 경우, (링크 주소에서 따로 cpage를 걸어주지 않는 이상) 링크를 타고 들어가면 포커스가 해당 댓글로 이동되지 않습니다.


이것도 일종의 버그라면 버그일까요? 아니면 서드파티라고들 하나요... 별도의 모듈이나 애드온 등으로 해결해야 하는 문제인가요? 그에 반해 document는 오래된 문서를 링크해도 리스트에서 자동으로 page를 찾아가던데 말이죠ㅠ


스킨단에서 자바스크립트로 해시값을 받아서 쿠키값을 저장했다가 페이지 새로고침했다가 하면서 자동으로 cpage 찾아가는 노가다를 해보다가 속도는 느려지고... 문득 억울해지더라구요. 못난 능력 때문에 자괴감도 들구요ㅠㅠ


처음엔 '이슈/토론'이 되겠다 싶어 쓴 글이었는데, 쓰고보니 '하소연'이네요ㅎㅎ 암튼 댓글 cpage 자동 감지 기능이 코어에서 지원해줘야 하는 건지, 아니면 서드파티에서 개발해야 하는 건지 여쭙고 싶습니다. 여러분들 생각은 어떠신가요?

글쓴이 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    후하니님이 소개해주셔서 알게된 애드온 https://github.com/huhani/xe-comment-without-refresh/tree/master/addons/board_extender
    이 이 문제를 해결해줘서 사용중입니다.
  • profile profile
    안 그래도 두 분 대화하는 걸 엿봤었는데, 이 경우엔 위젯 등에서 링크 들어오는 부분의 소스들을 수정해줘야 하는 거 같더라구요.
    역시 comment 모듈에서 자체적으로 지원해주는 게 여러모로 편리하지 않을까 싶은데, 그게 가능할지 모르겠네요.
  • profile ?
    웹지기님 하나 질문 드려도 될까요?

    새로고침없는 댓글 애드온 기능도 있으면 좋긴하지만 현재로는 cpage 감지가 절실해서 이 글을 찾은 상황입니다.
    웹지기님도 스케치북 스킨 수정을 많이 해서 사용하시는 것으로 알고 있는데 어떤 식으로 적용하셨나요?
  • ? profile

    저 위 댓글의 애드온을 사용하면 cpage가 감지되서 이동됩니다. 다만 댓글을 소개하는 링크에 cpage 사용이 되게끔 만들어 주셔야 합니다. 모든 위젯이나 댓글의 링크를 제공하는 모든 곳에서 cpage 사용 변수가 추가되어야 합니다.

     

    저희 사이트에서 댓글 링크를 확인하기 어려우시겠지만...   최신댓글 제공을 회원에게만 제공...

    마우스를 올려보면 cpage 변수가 들어가 있습니다. 이런 식으로 cpage를 사용하게끔 댓글 링크에 추가해 줘야 합니다.

     

    게시판 스킨에는 별도로 수정이 필요하거나 하지는 않습니다. 다만 게시판 스킨의 각 댓글 주소를 복사해가게 해 놓았다면 여기도 cpage를 사용하도록 주소를 제공해야 합니다.

     

    저희가 댓글 주소를 복사했을때 아래와 같은 주소를 가지고 가서 어딘가에 게시하면 저 클릭을 타고 오면 페이지를 잘 찾아갑니다.

     

    https://도메인/index.php?mid=join&document_srl=2259881&comment_srl=2260292&cpage_detect=1#comment_2260292

  • profile ?
    친절하게 답신 주셔서 정말 감사합니다!
    주신 답변 토대로 잘 적용해보도록 하겠습니다 좋은 하루 보내세요!!
  • ? profile
    아.. php7.2 이시라면 애드온 코드를 대응할 수 있도록 조금 고쳐야 할 것입니다.
  • profile ?

    위젯에 cpage 넣는것을 또 무한 검색해보다가 여기로 다시 돌아왔습니다
    추가 질문 안 하고 알아서 챡챡 해내고 싶었는데 ㅠ

    최근댓글 위젯을 현재 아래와 같이 사이드바 하단에 컨텐츠를 추가하여 노출하고 있는데, cpage 노출의 경우엔 어떻게 잡아줘야 하는걸까요... 아니면 최근댓글 위젯 중에 cpage 가 가능한 위젯이 따로 알고 계시는게 있으실까요?


    <img class="zbxe_widget_output" widget="content" skin="equeer_content_skin" content_type="comment" module_srls="104" list_type="normal" tab_type="none" markup_type="table" list_count="15" page_count="1" subject_cut_size="38" content_cut_size="38" option_view="title" show_browser_title="Y" show_comment_count="Y" show_trackback_count="Y" show_category="Y" show_icon="Y" order_target="regdate" order_type="desc" thumbnail_type="crop" />

    간단하게 어떤걸 찾아봐라 정도의 팁만 주시더라도 열심히 찾아보도록 하겠습니다
    감사합니다!

     

    https://xetown.com/topics/569804 이 글은 봤는데.. 어떻게 해야 저렇게 바뀌는건지를;;; 모르겠어서요

    https://xetown.com/tips/569396  

    getUrl('', 'document_srl', $document_srl, 'comment_srl', $comment_srl, 'cpage_detect', 1) . "#comment". $comment_srl  이것까지 찾았습니다. 이제 위젯을 봐야겠네요!

     

  • profile ?
    7.0 입니다 ㅋㅋ 7.2 무서워서 안 갔어요 ^^;;
  • ? profile
    스킨에서 바꾸셔야 합니다.
  • profile ?

    앗! 네! 그럼 또 찾아보러 가겠슴니다!! 

    https://xetown.com/topics/586652  이런 것을 찾았습니다!! 도와주셔서 감사합니다!

  • ? profile
    앗, 이 링크는 자체 제작인 데다 스크립트단에서 감지하는 것이어서 속도도 무진장 느리고, 웹지기님의 링크와도 상성이 안 맞을 거예요ㅠㅠㅠ
  • profile ?

    앗 ㅠㅠ 그..그럼 다시 찾아보겠습니다. 댓글의 주소에 cpage 값이 나오도록 함수를 변형해야하는건데..... 아마도 스킨의_comment.html을 뒤져야할 것 같고.. 위에 get url에 cpage를 잘 버무려서! 해낼수있을까 모르겠네요 ㅎㅎ 간신히 로직을 이해를 하더라도 실현시키는건 또 다른 세상이네요 ㅎㅎㅎ

  • ? profile
    시도는 안 해봤지만 코어에서 댓글 리스트 불러오는 함수에서,

    1) $cpage가 없고 '댓글 총 개수'가 '댓글 목록 수'보다 클 경우,
    2) 주소창의 url을 파싱해서
    3) #이후의 comment_srl이 있는 댓글 리스트의 cpage를 detect하고
    4) Context::set()해주면 될 것 같은데

    해본 적은 없어서 잘 모르겠네요;;
  • ? profile
    어쨌든 코어 수정은 위험부담이 있으니 웹지기님 팁처럼 애드온을 활용해서 스킨단에서 링크를 수정하는 게 더 효율적일 것 같아요.
  • ? profile

    뭔가 오해 하시는 듯 합니다. 댓글을 출력하는 곳에서는 별다른 것 필요없고 애드온으로 되는겁니다. 다만 어딘가에 댓글정보를 뿌릴때 cpage를 사용하겠다는 것이 들어있어야 해서 댓글 정보를 뿌리는 대표적인 것이 위젯 일 뿐입니다.
    게시판 스킨에서 댓글을 출력하는 곳에는 필요치 않습니다. 누 군가 댓글을 다른곳에 공유하고 싶을때 사용하라고 댓글주소복사를 제공하신다면 거기에 적용하시면 되는거구요.

     

    저희 사이트에서 댓글 주소복사를 해보시고 주소를 보시면 어떤 곳에 주소를 cpage사용 변수가 들어가야 하는지 이해가 되실겁니다.