1. 대댓글 버튼
<button cond="$oDocument->allowComment()" class="re_comment" onclick="<!--@if(!$grant->write_comment || !$oDocument->isEnableComment())-->alert('{$lang->msg_not_permitted}')<!--@else-->reComment({$comment->get('document_srl')},{$comment->get('comment_srl')},'{getUrl('act','dispBoardReplyComment','comment_srl',$comment->comment_srl)}')<!--@end-->;return false;"> 대댓글 </button>
먼저 각 댓글마다 대댓글을 호출하는 버튼을 위와 같이 만들었습니다.
reComment(document_srl, comment_srl, edit_url) 이라는 함수를 실행하고 있습니다.
먼저 이 함수는 실행이 잘 됩니다....
2. script
// 대댓글 돔 구조 변경 function reComment(doc_srl,cmt_srl,edit_url){ var o = jQuery('.comment-form').eq(0); o.find('input[name=error_return_url]').val('/'+doc_srl); o.find('input[name=mid]').val(current_mid); o.find('input[name=act]').val('dispBoardReplyComment'); o.find('input[name=document_srl]').val(doc_srl); o.appendTo(jQuery('#comment_'+cmt_srl)).fadeIn().find('input[name=parent_srl]').val(cmt_srl); o.find('a.wysiwyg').attr('href',edit_url); o.find('textarea').focus(); $.getScript('/rx/common/js/plugins/ckeditor/ckeditor/ckeditor.js', function() { console.debug('ckeditor.js 로드 성공'); }); setTimeout(() => { console.log("Delayed for 1 second."); $("iframe.cke_wysiwyg_frame.cke_reset").ready(function() { var add = "<p><br></p>"; var body = $("iframe.cke_wysiwyg_frame.cke_reset").contents().find("body"); body.attr('className','rhymix_content xe_content editable cke_auto_dark_mode cke_editable cke_editable_themed cke_contents_ltr cke_show_borders'); //color_scheme_light body.attr('spellCheck','false'); body.attr('contentEditable','true'); body.append(add); }); }, "500"); }
3. 글보기+댓글쓰기+댓글리스트
글보기, 댓글쓰기, 댓글리스트가 모두 _read.html에 있습니다.
1) 댓글쓰기
_read.html 에서 댓글을 작성하는 form의 클래스를 comment-form 로 지정해두었습니다.
2의 스크립트가 동작하여 해당 댓글쓰기 폼이 대댓글쓰기 폼으로 각 값이 변경됩니다.
각 값 자체는 정상적으로 변경되고, 원하는 위치에 로드됩니다.
4. 문제는 댓글을 작성하면 '내용 값은 필수입니다.' 라고 뜨고 작성이 안됩니다.
어쩌다 로딩이 잘 될 경우(?) 글작성이 되기도 합니다. 그 때는 파일 첨부도 정상적으로 잘 됩니다.
안될 경우의 문제를 못 찾겠습니다.