XETOWN

분수 광장

특정한 주제 없이 자유로운 이야기를 나눌 수 있습니다.
조회 수 117 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
화제의 글 하소연 라이믹스를 설치했는데..... 7 현님v 2017.01.10 191
화제의 글 자유 나의 실체를 보여드립니다 27 file 제이엔지 2017.01.07 395
4045 자유 안녕하세요~ 2 김민철 2016.10.22 42
4044 자유 알림센터 3.0 버그는 어디다 제보해야할까요 ㅎㅎ 버그가잇음 4 투데이서버 2016.10.22 100
4043 자유 XE타운을 잠시 떠납니다, 흑 15 윤삼 2016.10.22 177
4042 자유 PHP 6.0대 버전은 어디로 증발하였는가... 10 투데이서버 2016.10.22 120
4041 하소연 무료 자료 배포의 고충 15 SimpleCode 2016.10.22 301
4040 자유 (수정)냉정한 평가 부탁드리겠습니다. 16 BlackTeddyBear 2016.10.22 112
4039 자유 라이센스 php5.5.9이상이라고하면 5.5.30버전에는 호환이 안되나여? 13 투데이서버 2016.10.21 72
4038 자유 구글 애드센스 페이지수준광고(페이지레벨광고) 재밌네요 ㅋ 3 file 웹지기 2016.10.21 121
4037 자유 오늘 문득 슈퍼캐시서버? 라는 것을 상상해 봤습니다. 14 웹지기 2016.10.21 125
4036 자유 공무원들 이메일이 어쩌구저쩌구@korea.kr인것을 보고.ㅎㅎㅎ 10 MIST 2016.10.21 149
4035 자유 만약 페이스북이 클라우드 플레어를 적용한다면 어떻게 될까요? 3 낙타 2016.10.21 69
4034 자유 그누보드에도 seo비슷한 모듈이 있나요? 6 가이더 2016.10.21 81
4033 자유 [Youtube] 질문 하는 방법. 1 람보 2016.10.21 59
» 자유 스케치북에서 새로고침 없는 댓글 삭제 11 윤삼 2016.10.20 117
4031 자유 마인크래프트 서버에 대해 잘아시는 계신가요? 2 가이더 2016.10.20 87
4030 자유 .xyz가 800원(?) 12 file 우리아기 2016.10.20 205
4029 자유 버전컨트롤 시스템 사용하세요! 2 람보 2016.10.19 90
4028 자유 브라우저 점유율 보다가 황당한 일이 5 file 휘즈 2016.10.19 107
4027 읽을거리 빚더미에 내몰린 대한민국 3040 3 file BlackTeddyBear 2016.10.19 94
4026 읽을거리 대박인 프로그램들이 있네요;; 8 BlackTeddyBear 2016.10.19 212
Board Pagination Prev 1 ... 21 22 23 24 25 26 27 28 29 30 ... 228 Next
/ 228
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...