묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
모바일 글쓰기 폼 오류
2014.07.11 23:57
pc버전에서 쓰던 게시판을 모바일에서도 쓰기 위해 m.skins로 복사했습니다.
그런데 에디터가 비활성화가 되네요. 에디터는 제이쿼리 불러오는 걸로 해결은 봤는데
내용을 쓰고 등록 버튼을 눌러도 글이 안 써집니다. 어떻게 해야 할까요?
댓글 4
-
okiz
2014.07.12 00:40
-
@pple
2014.07.12 00:44
참고로 모바일에서만 문제가 생깁니다.
board.js 전문입니다.
/** * @file modules/board/js/board.js * @author NHN (developers@xpressengine.com) * @brief board 모듈의 javascript **/ /* complete tp insert document */ function completeDocumentInserted(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; var mid = ret_obj['mid']; var document_srl = ret_obj['document_srl']; var category_srl = ret_obj['category_srl']; //alert(message); var url; if(!document_srl) { url = current_url.setQuery('mid',mid).setQuery('act',''); } else { url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act',''); } if(category_srl) url = url.setQuery('category',category_srl); location.href = url; } /* delete the document */ function completeDeleteDocument(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; var mid = ret_obj['mid']; var page = ret_obj['page']; var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl',''); if(page) url = url.setQuery('page',page); //alert(message); location.href = url; } /* document search */ function completeSearch(ret_obj, response_tags, params, fo_obj) { fo_obj.submit(); } function completeVote(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; alert(message); location.href = location.href; } // current page reload function completeReload(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; location.href = location.href; } /* complete to insert comment*/ function completeInsertComment(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; var mid = ret_obj['mid']; var document_srl = ret_obj['document_srl']; var comment_srl = ret_obj['comment_srl']; var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act',''); if(comment_srl) url = url.setQuery('rnd',comment_srl)+"#comment_"+comment_srl; //alert(message); location.href = url; } /* delete the comment */ function completeDeleteComment(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; var mid = ret_obj['mid']; var document_srl = ret_obj['document_srl']; var page = ret_obj['page']; var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act',''); if(page) url = url.setQuery('page',page); //alert(message); location.href = url; } /* delete the trackback */ function completeDeleteTrackback(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; var mid = ret_obj['mid']; var document_srl = ret_obj['document_srl']; var page = ret_obj['page']; var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act',''); if(page) url = url.setQuery('page',page); //alert(message); location.href = url; } /* change category */ function doChangeCategory() { var category_srl = jQuery('#board_category option:selected').val(); location.href = decodeURI(current_url).setQuery('category',category_srl).setQuery('page', ''); } /* scrap */ function doScrap(document_srl) { var params = new Array(); params["document_srl"] = document_srl; exec_xml("member","procMemberScrapDocument", params, null); } jQuery(function($){ $(document.body).click(function(e){ var t=$(e.target),act,params={}; if(t.parents('.layer_voted_member').length==0 && !t.is('.layer_voted_member')){ $('.layer_voted_member').hide().remove(); } if(!t.is('a[class^=voted_member_]')) return; var srl = parseInt(t.attr('class').replace(/[^0-9]/g,'')); if(!srl) return; if(t.hasClass('comment')){ act = 'comment.getCommentVotedMemberList'; params = {'comment_srl':srl,'point':(t.hasClass('votedup')?1:-1)}; }else{ act = 'document.getDocumentVotedMemberList'; params = {'document_srl':srl,'point':(t.hasClass('votedup')?1:-1)}; } $.exec_json(act, params, function(data){ var l = data.voted_member_list; var ul = []; if(!l || l.length==0) return; $.each(l,function(){ ul.push(this.nick_name); }); t.after($('<ul>') .addClass('layer_voted_member') .css({'position':'absolute','top':e.pageY+5,'left':e.pageX}) .append('<li>'+ul.join('</li><li>')+'</li>')); }); }); });
그리고 제가 모바일 글쓰기 폼에 추가했던 코드입니다.
{@ Context::addJsFile("./common/js/jquery.js", true, '', -100000) } {@ Context::addJsFile("./common/js/js_app.js", true, '', -100000) } {@ Context::addJsFile("./common/js/x.js", true, '', -100000) } {@ Context::addJsFile("./common/js/common.js", true, '', -100000) } {@ Context::addJsFile("./common/js/xml_handler.js", true, '', -100000) } {@ Context::addJsFile("./common/js/xml_js_filter.js", true, '', -100000) }
-
okiz
2014.07.12 00:49
아, 제 말은 저 board.js 를 불러와야 한단 뜻입니다.
<load target="../../tpl/js/board.js" type="body" />
를 추가해 보세요. (글쓰기폼 및 header 등등..)
이 board.js 는 글쓰기 폼 및 header 등에 같이 삽입되어야 합니다.
PC버전에서는 board.js 를 자동으로 불러오지만 모바일에서는 스킨에서 따로 지원해 줘야 합니다.
-
@pple
2014.07.12 00:55
헤더에 넣어줬더니 글쓰기는 됩니다.
그런데 댓글은 내용값이 필수라면서 되질 않네요.
modules/board/tpl/js/board.js 혹은 board.min.js
가 필요할 듯 싶습니다.