제목 없음.png

 

https://github.com/huhani/xe-comment-without-refresh

 

자꾸 중복 올리는 것 같아서 죄송합니다 ㅠㅠ

기능은

1. 새로고침 없는 댓글 작성

2. 새로고침 없는 댓글 수정

3. 새로고침 없는 댓글 삭제

4. 새로고침 없는 cpage 이동

5. 새로고침 없는 댓글 추천

6. 스티커 모듈 연동(스킨 설정에서 사용가능)

 

개발 환경은 php 5.6, XE 1.8.27, textarea에디터 사용을 기준으로 제작되었고 스티커 모듈 연동 기능은 모바일에선 권장하지 않습니다.

 

만약 잘 사용하신다면 깃허브에 별이라도 눌러주시면 감사하겠습니다 ㅠㅠ

 

board_extender 애드온 API:

 

1. document_srl과 comment_srl이 주어졌을 경우 자동으로 해당 댓글이 있는 cpage 찾아가기(전송값 중에 cpage값이 없어야 합니다):

http://domain_example.com/index.php?mid=testboard&document_srl=65535&comment_srl=2147483647&cpage_detect=1

 

2. 댓글 권환 체크하기(특히 비회원):

        var params = {
            mid : current_mid,
            document_srl : document_srl,
            comment_srl : comment_srl
        };
exec_json('comment.getCommentGrant', params, function(ret_obj){
var error = ret_obj.error;
var message = ret_obj.message;
var commentGrant = ret_obj.grant;

if(!commentGrant){
var password = prompt("비밀번호를 입력해주세요.", "");
if (password == null || password == ""){
return false;
}

});

 

테스트 : http://test.dnip.co.kr/index.php?mid=board&document_srl=418

 

+ 2016.12.31

스케치북 1.7.2로 업데이트 및 댓글단 ck에디터 호환작업 하였습니다.

 

+ 2017.01.31

XSS 취약점 수정 <http://xvezda.blog.me/220921753825>

  • profile

    전 아직 버튼도 제대로 이식을 못하고 있네요 여하튼 ㅠㅠ 좋은 자료 공유 해주셔서 감사합니다.

  • profile ?
    위 스킨 쓰시면 스킨단 작업할 필요가 없긴 합니다 8ㅅ8
  • ? profile
    스케치북이 아니라서요 너무 어려워요 ㅠㅠ
  • profile

    괜찮으시다면 개인적인 의뢰를 드리고 싶은 심정입니다.

  • profile ?
    음..
    [email protected] 메일주세요
  • profile

    집에가서 얼른 적용 해야겠네요 ㅎㅎ

    우선 깃허브로 별부터!

  • profile
    새로달린 댓글이 있습니다 이런거 실시간으로 표시되는건 힘들겠죠?
  • profile ?
    사실 별로 어려운 기능은 아닌데
    아마 수 초 간격으로 댓글수를 가져와야되는데 괜히 서버 부하 일으킬까봐 하지는 않았습니다.
    추후 설정에서 적용가능하게끔 고려해보겠습니다
  • ? profile
    대형사이트에 구현되어있더라구요. 부하는 생길 수 있긴 하겠네요.
  • profile ?
    주로 그런 사이트는 웹소켓으로 구현하는거라 부하까지는 안걸려요
  • profile profile
    웹소켓 아니면 하지 마세요. 괜히 알려줄 기회가 많지도 않으면서 클라이언트 모두 접속을 반복하게 만들어야 합니다.
  • profile ?
    글리젠이 빠른 사이트면 나름 사용도가 있는 것 같더군요.
    작성한지 24시간 지난 글은 작동 안하게 하거나 하면 나쁘진 않을것 같다 생각이 듭니다
  • ? profile

    사실 웹소켓과 병행해서 사용할 수 있는 모듈이 있었죠. 아약스보드 모듈입니다. 웹소켓을 사용하지 않으니 동접이 좀 생기면 서버가 좀 부하가 걸릴 수 밖에 없더라구요. 저희도 사용은 했었지만 지금은 삭제하고 안써요. 지금 제공하는 기능에 댓글 자동으로 불러와서 댓글 목록에 갱신해주고 새글도 마찬가지고 자동으로 갱신해주고 하는 다양한 기능이 있었지만.....

    그냥 할일 없이 접속자들 클라이언트에서 서버를 들락날락해야 하니까요..
    뭐 득과 실은 타협해서 사용하고 결정할 수 밖에 없지만 이것 저것 사용해보고 내린 결론은 웹소켓으로 제대로 쓸 거 아니라면 다 집어치우자 였습니다.

    지금 딱 구현하신게 그런 부하만 빼고 필요한 것만 적용하신 듯 하네요.

  • ?
    모바일에도 같은 스킨 적용하고 사용하면 새로고침기능이 작동하는건가요?
  • ?
    헉 근데 테스트 사이트에 나오는 가사랑 노래랑 나오게하는건 어떻게하나요?!
  • ?
    아, 모바일은 사용 권장을 안하시고
    노래는 알송으로 가사랑 연동하신거군요.. 하지만 ckeditor는 지원안하고..

    감사합니다.
    뭔가 사용하고싶지만 스케치북 보드 1.7.0버전이라서..
    제가 사용하는 버전이 1.7.2 버전인데..

    이게 뭐뭐 추가된지는 알 수 없을까요?
    추가된 부분만 빼서 설정하려고하는데..
  • ? ?
    스케치북 원본 파일을 공홈에서 다운받은거라..
    집에가서 1.7.2버전으로 패치해놓겠습니다.

    모바일을 권장 하지 않는 이유는 스티커 때문인데 스티커 모듈을 사용하지 않는다면 별 문제는 없습니다
  • ? ?
    스케치북 공홈쪽

    https://github.com/sketchbook/xe

    깃허브에 가서 보시면 스케치북 보드 모듈이 1.7.2 에용~
    모바일에서 스티커 기능만 빼면 새로고침 애드온이 작동하겠군요..
  • ? ?
    업데이트 하였습니다.
    다행히 달라진 점은 크게 없던 것 같네요
  • ? ?
    감사합니다. ㅎㅎ
  • profile
    저도 다른 게시판에서 적용해보려고 하는데
    수정해야하는 파일 들좀 알 수 있을까요?
  • profile ?
    댓글 새로고침 없는 작업만 하신다면

    _comment_write.html 파일 대댓글 부분form input값 있는 부분에
    <input type="hidden" name="comment_srl" value="" />
    추가

    board.js 파일
    기존 reComment함수 수정 및 bdLinkBoard함수 아래에 있는 부분들 추가하시면 됩니다
  • ? ?
    정말 제가 원하던 게시판입니다! 정말 너무 감사드립니다..
    이 기능을 제가 쓰는 xedition 스킨에 적용하고싶은데..
    초보라서..응용을 못하겠네요 ㅠ
    어떤부분을 수정해야할까요..
  • ?
    스티커를 글과 함께 사용할 수는 없을까요? 늘 좋은 자료 감사합니다
  • ? ?
    글과 함께 사용한다면
    http://xe.sketchbook.kr/download/76140
    위 에디터 컴포넌트에다 이모티콘을 별개로 추가해서 쓰는게 좋을듯 합니다.
    애초에 댓글에만 쓰는걸 목표로 두고 만들었기 때문에 ㅠㅠ
  • ?
    코어 1.8.27에 스케치북 1.7.2 쓰고 있는데, 저는 애드온 켜고 적용시켜봤더니 ajax는 작동하긴 하는 것 같은데 댓글을 등록한 후에 아무런 변화가 없네요 ㅠ. 자동으로 새로 달린 댓글 부분으로 화면이 이동해야 하는데.. 아무 반응이 업고, 새로고침을 하면 방금 단 댓글이 보여지는데 무슨 문제일까요?
  • ? ?
    아마 자바스크립트쪽에 에러인듯 한데 직접 봐야 파악이 가능할 것 같습니다
  • profile
    https://github.com/rhymix/rhymix/blob/master/modules/board/skins/xedition/_comment.html#L28

    라이믹스에서는 댓글 자리남김 기능이 내장되어 있어서 이렇게 하면 이용가능한데
    자동 댓글이 달리는 이 스킨 적용하니 댓글이 바로 삭제되더라구요.

    이스킨 사용하면서도 혹시 적용 가능 할까요?
  • profile ?
    댓글 자리남김 기능이 뭔지 모르겠네요 ㅠㅠ
  • ? profile
    매번 빠른 댓글 감사드립니다.
    라이믹스 게시판 설정에 댓글 자리남김(후하니님의 똥남기기 모듈과 같은 기능)을 하는것이 있더라구요.
  • profile ?
    확실하진 않지만 삭제할때 스킨쪽에서 ajax로 procBoardDeleteComment를 요청하게 되어있는데 그래서 그런 것 같습니다.
  • profile ?
    라이믹스 최신버전인데, 아무런 조치를 하지 않아도 댓글 자리남김 기능이 정상적으로 작동합니다. (대댓글이 달린 경우 대댓글은 그대로 놔두고 윗 댓글만 삭제되고 "삭제된 댓글입니다"라고 나오네요)

    참고로 후하니님 애드온도 적용한 상태입니다. 혹시 이게 원인일수도..
  • ? profile
    그렇죠
    애드온 대신에 라이믹스 자리남기기 기능을 사용하면 그냥 삭제가 됩니다.
    가급적 내장된 기능이라서 애드온을 안쓰고 사용하려고 했거든요 저는 ㅠㅠ
  • profile ?
    아니요, 라이믹스 자리남기기 기능이 정상적으로 작동한다는 겁니다. 자리남기기 애드온 같은건 사용하지 않고 있습니다.

    제가 말씀드리는 애드온이라는건 후하니님 깃허브 저장소에 올라와 있는 board_extender 애드온입니다. 이건 이 자료를 사용하기 위해서 반드시 설치해야 합니다.
  • ? profile
    31일 패치가 된건가 ㅎㅎ 저도 한번 해보고 오겠습니다.
  • profile

    안녕하세요. 공유에 큰 감사 드립니다.
    다름 아니라.. 스킨 설치 및 애드온 설치 후 댓글을 달았을때, 아래와 같은 오류가 출력됩니다.

    XE 버전은 1.8.27  / PHP5.5 입니다. 도움 받을 수 있을까요.? 부탁드립니다.

     

    1111.PNG

  • profile ?

    혹시 사이트 도메인 뒤에 /xe같은게 붙나요?
    만약 그렇다면 sketchbook5/js/board.js 약 788행쯤에 loadCommentPage 함수
    var url = "//"+location.hostname+"/index.php?mid= ...
    에서

    var url = "//"+location.hostname+"/xe/index.php?mid= ...

    와 같이 수정해주세요

  • ? profile
    /xe가 붙어있습니다.
    해결해주셔서 감사합니다. ^^
    복 많이 받으세요~!
  • ?
    이거 쓰니깐 아예 스티커 등록버튼이 사라졌습니다..
    그리고 기존껄로하면 스티커등록하는부분이 무반응인데 혹시 오류해결할수없을까요?
  • ? ?

    게시판 설정 > 스킨 관리 > 글쓰기 및 댓글쓰기 설정 > 댓글 스티커 불러오기 버튼 표시 "사용" 체크 후 저장

    만약 모바일에서 사용한다면 css 반응형 작업을 하지 않아서 안뜨는게 정상일거에요

  • ?

    좋은 자료 감사합니다만 버그를 발견해서 문의드립니다.

    우선, 저는 기존 스킨에 수정한 부분이 많아서 말씀드린대로 _comment_write.html 파일과 board.js 파일 부분 수정해서 적용했는데요

    회원이 쓴 댓글의 경우 아무 문제 없는데, 비회원 댓글의 경우 삭제/수정시에 "잘못된 요청입니다" 라고 뜨네요.

    최고 관리자가 삭제/수정하려고 해도 마찬가지입니다.

     

    라이믹스 develop 브랜치 최신버전, php 7.1, 스케치북 1.7.2 버전입니다. 

  • ? ?

    동봉된 애드온 적용하셨나요?

    만약 적용하였는데도 에러가 난다면 캡챠쪽에서 꼬였을 수도 있습니다.

  • ? ?

    아 원래 애드온도 같이 설치해야 하나요? (캡챠는 사용하지 않습니다. 사실 사용하려고 해도 서버 통신과정에서 오류가 발생했다는 에러문구가 뜨는 바람에 못 쓰고 있네요)

    조만간 애드온 설치하고 다시 해봐야겠네요. 이 참에 스티커 모듈도 적용할 겸 그냥 후하니님 버전을 git으로 다시 설치하고 그걸 기반으로 스킨 수정작업 다시 해야겠네요.

    위에 보니까 라이믹스 기본 댓글 삭제시 자리남김 기능과 호환이 잘 안되는거 같은데, 혹시 후하니님께서 전에 올려주신 똥 남기는 모듈을 사용할 경우 제대로 작동되나요?

  • ? ?

    네 원래 애드온이랑 같이 사용하여야 합니다.

    댓글 삭제시 procBoardDeleteComment 요청을 하게 되어 있습니다. 만약 댓글 삭제시 자리남김 파라미터를 따로 넘기거나 act이름이 다른 경우 별개로 해당 부분을 수정하셔야 합니다.
    아마 똥 남기는 모듈 사용시 정상작동 할 걸로 예상됩니다만, 개인적으로 개발할 때 XE를 기준으로 만들기 때문에 라이믹스를 써본 적이 없어서 확답하긴 어렵네요 ㅠㅠ

  • ? ?
    애드온을 적용하고 안 하고 차이인지는 모르겠는데, 라이믹스 댓글 자리남김 기능이랑 정상적으로 호환되네요.
  • ?
    한가지 질문드립니다.

    js 폴더를 보니 resize_flash.js 라는 파일이 있는데, 찾아보니까 원래 스케치북 스킨에는 없던 파일이네요. 이건 어떤 파일인가요?
  • ?
    그리고 문제가 있는데... 왜 이런건지 알 수가 없네요

    https://metalgall.net/test

    후하니님 보드스킨 적용한 버전인데, 우선 댓글을 달려고 하면 "내용 값은 필수입니다" 가 뜨면서 안됩니다. 회원/비회원 동일하구요, 게시판 확장 애드온 사용/사용안함 둘 다 마찬가지입니다. 스티커 모듈과 충돌이 일어나는 거 같긴 한데..

    그리고 에디터 사용으로 하면 ck에디터를 불러오지 못하네요.

    (참고로 지금은 제가 사이트에 맞게 스킨 커스텀한 내용을 적용해놓은 상태인데, 혹시나 해서 수정내역 다 초기화하고 후하니님 순정상태로 돌려봤는데도 마찬가지 오류들이 발생합니다.)

    전에 질문드렸을 때는 기존 스킨에 댓글 새로고침 부분만 적용했었고 그때는 잘 됐기 때문에, 아무래도 스티커 출력 부분을 불러오는 과정에서 충돌이 일어나는 걸로 추측됩니다만 정확한 건 모르겠네요.
  • ?

    보니까 개발자도구 콘솔에 다음과 같은 에러가 표시되네요. 기존 스케치북 스킨을 사용할 때는 안 나타나던 에러들입니다.

     

    3.PNG

     

     

    이것과 연관이 있는 것 같은데, 왜 나타나는지는 모르겠네요.

     

    참고로 라이믹스 최신버전, php 7.1입니다. 이것과 연관이 있는건지..

     

    (일반 댓글만 등록이 안되고, 스티커 댓글은 등록이 되네요.)

  • ?
    아오... 죄송합니다. 원인을 알아냈네요

    modules/board/skins 폴더에 직접 업로드하지 않고, 깃허브 저장소를 그대로 git clone로 다른 폴더에 옮겨온 후에 skins 폴더에 심볼릭 링크로 걸어주었더니 이런 문제가 발생하네요

    (참고: https://xetown.com/qna/490129 )

    다른 것들 다 해봐도 안 되길래 혹시나 해서 똑같은 파일을 폴더에 직접 업로드하고 적용해 보니까 정상적으로 작동하네요

    애드온은 심볼릭 링크로 걸어도 제대로 작동하는데, 게시판은 안되나 보네요.
  • ? ?

    유투브 혹은 기타 멀티미디어 크기가 큰 경우 비율에 맞게 가로세로 리사이징 + PC 유투브 전체화면 허용

  • ? ?
    심볼릭 링크로 시도를 안해봐서 해당 부분은 잘 모르겠네요 ㅠㅠ
  • profile

    제목-없음-1.jpg

     

    비회원 댓글삭제시 해당에러는 무슨 에러일까요?

    500에러가 발생하네요.

  • profile ?
    이렇게만 봐선 오류 파악이 어렵습니다
    php에러 로그 캡쳐해주신다면 확인해보겠습니다.
  • ?

    댓글 작성시에 한 가지 문제가 있는데, oEmbed를 사용할 경우, 댓글에 유튜브 링크 등이 있을 때, 새 댓글을 작성하거나 하기 전에는 정상적으로 oEmbed가 작동해서 동영상이 보이는데, 새 댓글을 작성하고 나면 그때부터 갑자기 댓글 영역에서 oEmbed가 동작하지 않네요.(동영상을 재생 중이었을 경우 끊어집니다.) 새로고침을 해야 다시 나옵니다. (본문영역은 관계없음)

    혹시 해결방법 아시나요?

  • ?
    https://metalgall.net/test/1011424

    테스트용 링크입니다.
  • ? ?

    저게 댓글 새로고침 대신 html부분을 교체해버리는 방식이라
    oEmbed뿐만 아니라 자동 링크 애드온도 아마 씹혀버릴겁니다.
    댓글 새로고침 후 다시 자바스크립트를 재로딩 시키거나 이중포문 돌려서 갱신된 댓글만 추가시켜야 될거에요

  • ?
    한가지 문제가 더 있네요..

    관리자가 맨 마지막 댓글을 수정하려고 하면 댓글 수정 페이지가 로딩되네요.

    자기 자신이 쓴 댓글인 경우 아무 문제 없고, 맨 마지막 댓글이 아니라 그 위의 댓글들 또한 문제가 없습니다.

    맨 마지막 댓글 + 관리자가 다른 사람의 댓글 수정을 시도할 때만 이런 현상이 나타나네요

    (정확하게는, 댓글 수정 누르면 순간적으로 후하니님이 변경하신 댓글 수정창이 뜨는데, 그때 글자들이 <p> 태그로 감싸져 있는 증상이 나타납니다.

    이 화면이 뜨고 나서 곧바로 별도의 댓글 수정페이지로 넘어가네요. 물론 다른 댓글이나 자기 자신이 쓴 댓글은 p 태그 같은거 안 나타납니다.)

    근데 다 그런 것도 아닙니다. 어느 시점 이후의 게시물부터 그런 증상이 나타나는데, 타임라인 모듈과 관련이 있는 거 같기도 하고..

    도무지 뭐때문에 그런지 알 수가 없네요;;

    혹시 해결방법 아시는지 궁금합니다.

    자꾸 질문드려서 죄송합니다 ㅠㅠ

    (사실 저러한 경우가 매우 특이한 경우라, 굳이 해결 안 하고 그냥 써도 큰 문제는 없긴 합니다.)
  • ? ?
    board.js openModifyEditor 함수 부분에

    if(text.indexOf("<p")+text.indexOf("<div") > -2){
    location.href = href;
    }

    HTML태그가 있는 경우 에디터로 넘어가게끔 되어있어서 그런 것 같습니다.
    아마 textarea가 아닌 다른 에디터를 사용하여 작성하여 등록하면 문제가 발생할 거에요.
  • ? ?
    음.. 그렇군요. 분명 textarea로 작성한 댓글일텐데 왜 그러는건지.. 여튼 감사합니다.
  • profile
    이거 대로 하면 대댓글은 작동하지 않더라구요~
  • profile
    대댓글의 loadsticker(1,'reply')를 그대로 하면 대댓글 이안되어서

    loadsticker(1,$('input[name=parent_srl]').val()) 로 하니 잘 작동합니다.
  • profile ?
    감사합니다
  • profile profile

    혹시 다른 방법 있을까요? 저는 대댓글에서만 소유한 스티커가 안 떠서요. 스티커를 클릭해야 등록되잖아요. 그 스티커들이 안 뜹니다.

    근데 이렇게 바꾸니 비회원한테는 그래도 뜹니다. 회원은 여전히 안 뜨고요ㅠㅠ

  • profile

    와 감사합니다  더 궁금한점 있으면 댓글로 문의할게요!

  • ?
    이걸 사용시 가끔 댓글등록이나 글쓰기 등록할때 무반응이 한번뜨고 한번더 누르면 이미 작성된게시글이라고 나오내요..
    혹시 해결법은 없을까요?
  • ?
    정말 감사합니다! 사용해보니 스티커를 등록한 회원도 본인의 스티커를 구매해야하던데 자신의 스티커는 그냥 사용하게 할 수 있을까요? 좋은 자료 공유해주셔서 정말 감사드립니다.
  • ? ?

    나중에 해당 기능 추가 고려해보겠습니다.

  • ?
    저 혹시 댓글 새로고침 후
    오토링크 애드온이 작동되게하려면 어떻게 해야하나요?
  • ? ?

    /sketchbook5/js/board.js
    약 842행 쯤
    complete:function(){
    아래에 다음 내용을 추가해주세요.

     


    (function setAutoLink(){
    if(typeof(xe) != "undefined"){
    var autolink = xe.getPlugin('autolink');
    if(!autolink.length){
    return false;
    }
    autolink[0]._binded_fn.ONREADY();
    } else {
    return false;
    }

    return true;
    })();

  • ? ?
    철지난 글에도 답변을 해주시다니, 반쯤 포기하고 달은건데..
    끝까지 사후지원 감사합니다!
  • ?

    후하니님 질문있습니다!스케치북5 원래스킨에 기능을 다 구현해놔서 후하니님 스티커 쓰고싶어서 스케치북5 기본스킨(후하니님 스케치북스킨아님) 스티커만 따로 덮어씌우기하고싶은데 어떤것들을 덮어씌워야할까요ㅠㅠ?

  • profile
    안녕하세요 후하니님 혹시라도 XE 타운 방문을 하신다면
    최근 라이믹스 2.0.5 버전에서 짧은주소 변경으로 댓글 수정 시
    댓글 수정 페이지로 이동하는 문제가 생겼는데 혹시 해결 방법을 얻을 수 있을까요?
    현재 수정하기 링크가 /mid/comment/document_srl/edit 이런 형식으로 변경되었습니다.
  • profile ?
    https://dev43.dnip.co.kr/board/130
    라이믹스 2.0.5에서 확인을 해보니 정상적으로 작동하는 것 같아요
    정확한 문제는 사이트를 직접 봐야지 확인이 가능 할 것 같습니다.
  • ? profile
    엇!! 안녕하세요!
    시스템 설정 > 고급 설정 > 짧은 주소 사용에 XE와 호환되는 주소 형태만 사용 체크 시 정상 작동 하는데
    모든 주소 형태를 사용 체크 시 위에 말씀 드린 /mid/comment/document_srl/edit 이런 형식으로 주소가 변경 되어 나와서 처리를 못하는 거 같아요..
  • profile ?

    일단 급하게 수정해봤습니다.

    첨부한 zip파일을 스케치북 스킨 파일에 덮어씌우시면 아마 될거에요.

    Atachment
    첨부
  • ? profile
    우와 바쁘실텐데 감사합니다 ㅠ
    얼른 확인 해보겠습니다!
  • ? profile
    수정하기 버튼 클릭시 잘못된 요청입니다. 라고 나오네요.
    https://www.yoonbo.me/test/214
  • profile ?

    https://github.com/huhani/xe-comment-without-refresh

    여기에 있는 애드온도 설치후 작동되어야 해요

    Atachment
    첨부
  • ? profile

    기존 라이믹스 버전에서는 해당 애드온이 없어도 잘 작동 하였는데
    이제는 필요해졌군요 신기하네요! 후하니님 패치 덕분에
    짧은 주소를 완벽하게 사용 할 수 있게 되었습니다! 감사합니다 ㅠㅠ

  • ?

    안녕하세요 후하니님 다름이 아니라 라이믹스 1.9에서 스티커 모듈을 사용하고자 설치와 셋팅을 마친 상태 입니다.

    스티커 표시까지 잘되는데 스티커를 눌러도 전혀 반응이 오질 않습니다. 어떻게 해야되나요?

    첨부.PNG

    클릭을 하여도 무반응이지만 신기한것은 스케치북 게시판의 블로그 스타일에서는 작동을 하는거같습니다..

    일반 목록형 타입에서는 클릭을 해도 무반응입니다.