XETOWN

분수 광장

특정주제 없이 자유로운 이야기를 나눌 수 있습니다.
조회 수 115 추천 수 0 댓글 11
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

세진님의 팁을 받으셨던 XE만세님의 팁으로부터 응용을 해봤습니다.

참고 링크: https://www.xpressengine.com/tip/22459465

 

원본 팁에선 페이지 새로고침이 있었는데, 여기선 #cmtPosition 요소만 새로고침을 적용해봤습니다.

아약스보드 안 쓰시는 분들한테는 도움이 될 수 있을 듯해요ㅋ

 

사용팁에 안 올리고 자유게시판에 올리는 건 아직 확신이 없어서요;;;

여건 되시는 분들, 시험 삼아 테스트해보시고 의견 주시면 감사하겠습니다

 

 

1. _comment.html에서 댓글에 댓글달기 링크(class="cmt_delete")에 다음의 onclick 속성을 추가

onclick="delComment('{$lang->confirm_delete}',{$comment->comment_srl});return false;"

 

2. board.js에 다음을 추가. 또는 _comment.html 파일 하단에 스크립트 태그로 추가

function delComment(msg, cmt_srl){
    var message = confirm(msg);
    if(message) {
        var params = new Array();
        params['comment_srl'] = cmt_srl;
        exec_xml('board','procBoardDeleteComment', params, function() {
            jQuery('#cmtPosition').load(location.href+' #cmtPosition');
            jQuery(document).scrollTop(jQuery('.fdb_lst_wrp').offset().top);
        })
    } else {
    }
};
  • ?
    후하니 2016.10.20 19:37:31

    댓글 페이지가 50개 단위로 나뉠 경우
    맨 마지막 51번째 댓글 삭제할때 cpage조정 따로 설정하셔야 할거에요

     

    그리고 비회원...

  • profile
    윤삼 2016.10.20 19:46:38
    헐, 그러네요. 이런 cpage...ㅋㅋㅋ
    비회원은 외부에선 사이트가 잠금 상태여서 이따 집에 들어가서 다시 확인해봐야겠네요.
    감사합니다~!
  • ?
    SimpleCode 2016.10.20 19:48:22
    댓글 페이징까지 다시 계산해야한다면 굉장히 머리아픕니다.

    그런 경우에는 그냥 페이지 번호로 나누는 것보다, "더보기" 버튼으로 넘겨보는 방식이 사용자 입장에서도 편할 거에요.
  • profile
    윤삼 2016.10.20 19:53:01

    아, 더보기가 있었죠~
    가뜩이나 식견도 좁은데, 좁은 창만 보고 있다보니ㅎㅎ
    감사합니다. 일단 이번 습작을 해내면 적용해봐야겠어요. 페이징은 더보기로!

  • profile
    윤삼 2016.10.20 20:21:08

    $cpage가 $oDocument->comment_page_navigation->last_page와 같고,
    목록상에서 count($oDocument->getComments())가 1일 때를 조심하면 되는 거겠죠?

    이 경우에 한해서 리로드되는 주소값의 cpage를 $cpage-1로 해주면 될 것 같은데...


    혹시 그 외에도 고려사항이 더 있을까요?

  • ?
    후하니 2016.10.20 21:05:39
    새 댓글 갱신속도가 많이 빠른 편이 아니라면
    var cpage = jQuery("#cmtPosition .bd_pg .this").text();
    if(cpage=="") cpage='1';

    var recomment_count = jQuery(".fdb_itm .re").length;
    var comment_count = jQuery(".fdb_itm").length-recomment_count; // Parent comment count

    if(cpage !=1 && ((jQuery(".fdb_itm").length == 1) || (comment_count == 1 && jQuery("#comment_"+comment_srl).attr("class").indexOf("re") ==-1) || (comment_count == 0 && jQuery(".fdb_itm").filter(':first').attr("id") == "comment_"+comment_srl))) cpage--;

    이런식으로 처리해도 별 문제없을겁니다
  • profile
    윤삼 2016.10.20 21:25:09

    으흑흑흑, 감격입니다ㅠㅠ

    대댓글 경우는 물론이고, 특히 cpage를 페이지네이션의 this 클래스에서 가져오는 건 진짜 감동 감동이에요ㅠㅠ

    도움 덕분에 아래와 같이 짜서 문제가 되는 부분이 해결됐습니다.

    (주소창에 cpage가 그대로 남는 경우에 대비해 pushState도 넣어봤어요ㅋ)

     

    function delComment(msg, cmt_srl){
        var message = confirm(msg);
        var cpage = jQuery('#cmtPosition .bd_pg .this').text();
        if(cpage=='') cpage='1';
        var recomment_count = jQuery('.fdb_itm .re').length;
        var comment_count = jQuery('.fdb_itm').length-recomment_count; // Parent comment count
        if(cpage != 1 && ((jQuery('.fdb_itm').length == 1) || (comment_count == 1 && jQuery('#comment_'+cmt_srl).attr('class').indexOf('re') ==-1) || (comment_count == 0 && jQuery('.fdb_itm').filter(':first').attr('id') == 'comment_'+comment_srl))) cpage--;
        if(message) {
            var params = new Array();
            params['comment_srl'] = cmt_srl;
            var url = current_url.setQuery('cpage',cpage);
            exec_xml('board','procBoardDeleteComment', params, function() {
                jQuery('#cmtPosition').load(url+' #cmtPosition');
                jQuery(document).scrollTop(jQuery('.fdb_lst_wrp').offset().top);
            })
            if(current_url.indexOf('cpage')!=-1) history.pushState('','',url);
        } else {
        }
    };

     

    이제 집에 가서 비회원의 경우 어떤 문제가 있는지 확인해보겠어요 ^^/

    (아마도 비밀번호 확인?)

  • profile
    윤삼 2016.10.20 23:45:12

    비회원의 경우, 비밀번호 입력창으로 안 넘어가고 권한이 없다는 경고창만 뜨고 마네요;;
    그래서 getCommentGrant 함수를 추가하셨던 거였는데...

    에잇!!

  • profile
    윤삼 2016.10.21 00:22:51

    일단은 $comment->isGranted()가 없으면 ajax로 원래의 href를 가져오는 다른 함수를 만들고,
    권한이 있으면 위의 delComment를 실행시키는 것으로 문제를 봉합(?)했습니다.

    이 때 $document_srl가 없는 경우(제가 블로그 형태로 꾸미고 있어서 문서번호가 주소창에 없는 경우가 있거든요) 비밀번호 입력창에서 문서번호가 누락되는 경우가 있는데,
    이 문제는 input_password_form.html에서 $comment_srl로 문서번호 불러오는 쿼리를 활용해서 땜빵ㅋ했구요.
    {@
    if(!$document_srl):
    $oCommentModel = getModel('comment');
    $comment = $oCommentModel->getComment($comment_srl);
    $document_srl = $comment->document_srl;
    endif;
    }

    이로써 비밀번호 입력시에 전체 새로고침이 안되게끔 하는 것만 남은 거 같은데,
    어째, 문제가 점점 산으로 가는 느낌입니다ㅠㅠ

  • ?
    후하니 2016.10.21 01:10:48

    아마도 결국은 코어수정까지 갈거라 예상됩니다
    저거 말고도 댓글 페이지가 50개로 나뉠때 51번째 댓글을 작성할 경우 또 따로 해당 작성 댓글이 위치한 comment page값을 가져와야 하는데 이 때 모듈이나 애드온의 힘이 필요합니다 ㅠㅠ

  • profile
    윤삼 2016.10.21 01:26:08
    역시 그렇군요.....
    슬픕니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
화제의 글 자유 엑스이타운에 파티가 열렸어요 68 제이엔지 2016.11.30 302
화제의 글 자랑해요 최근 개발한 스티커 모듈 22 file 후하니 2016.12.05 255
화제의 글 자유 닉네임이 사라졌는데 71 제이엔지 2016.11.28 340
4046 자유 라이센스 php5.5.9이상이라고하면 5.5.30버전에는 호환이 안되나여? 13 투데이서버 2016.10.21 72
4045 자유 구글 애드센스 페이지수준광고(페이지레벨광고) 재밌네요 ㅋ 3 file 웹지기 2016.10.21 119
4044 자유 오늘 문득 슈퍼캐시서버? 라는 것을 상상해 봤습니다. 14 웹지기 2016.10.21 119
4043 자유 공무원들 이메일이 어쩌구저쩌구@korea.kr인것을 보고.ㅎㅎㅎ 10 MIST 2016.10.21 146
4042 자유 만약 페이스북이 클라우드 플레어를 적용한다면 어떻게 될까요? 3 낙타 2016.10.21 61
4041 자유 그누보드에도 seo비슷한 모듈이 있나요? 6 가이더 2016.10.21 73
4040 자유 [Youtube] 질문 하는 방법. 1 람보 2016.10.21 59
» 자유 스케치북에서 새로고침 없는 댓글 삭제 11 윤삼 2016.10.20 115
4038 자유 마인크래프트 서버에 대해 잘아시는 계신가요? 2 가이더 2016.10.20 84
4037 자유 .xyz가 800원(?) 12 file 우리아기 2016.10.20 197
4036 자유 버전컨트롤 시스템 사용하세요! 2 람보 2016.10.19 90
4035 자유 브라우저 점유율 보다가 황당한 일이 5 file 휘즈 2016.10.19 106
4034 읽을거리 빚더미에 내몰린 대한민국 3040 3 file BlackTeddyBear 2016.10.19 88
4033 읽을거리 대박인 프로그램들이 있네요;; 8 BlackTeddyBear 2016.10.19 188
4032 자유 맥쓰시는 분들 계신가요~? 8 콕콕콕 2016.10.19 62
4031 자유 혹시 텀블러 사용하시는 분 계신가요? 7 데버 2016.10.19 107
4030 자유 댓글 입력창에서 '에디터 선택하기'를 없앴더니 4 윤삼 2016.10.19 71
4029 자유 해외 사이트는 탈퇴메뉴 없는데가 많은가요? 5 기븐 2016.10.19 101
4028 자유 네이버 Works (Works Mobile 이전 서비스) 서비스 중단 6 포커스 2016.10.18 161
4027 하소연 기왕 하는김에 하다가 고생했네요 휘즈 2016.10.18 66
Board Pagination Prev 1 ... 11 12 13 14 15 16 17 18 19 20 ... 218 Next
/ 218
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...