포럼

얼마 전에 방명록 보완하면서 방명록은 한번에 보는 글 수도 많아
문서 하나하나마다 에디터로 불러오면 너무 브라우저 로딩이 심하길래
<textarea>로 댓글입력창을 교체했습니다. 

댓글을 에디터 불러옴 없이 <textarea> 이렇게 한줄로 처리하니 가볍고 좋았는데.. 근데..

글을 쓰고 엔터를 쳐도 글입력시에는 엔터로 줄바꿈이 되지만, 정작 등록된 글은 엔터없이 띄어쓰기만 되네요.

예를 들면, 'aaa (엔터) bbb' 라고 입력하면 입력 후 본문 글에서는 'aaa bbb' 이렇게 보입니다.


----------
해결하려고 다음의 방법을 뒤져봤는데..
1. xpresseditor 의 'html 사용없이 자동줄바꿈' 이란 기능을 보고 나름 js 등 같은 방식(?)으로 구현.
2. 모바일 스킨은 <textarea>로 글 입력하는데 줄바꿈이 되길래 따라해봤더니 -> 모바일스킨 코드를 그대로 일반 스킨 코드로 가져와도 모바일 보기에서는 줄바꿈이 되고, 일반 웹브라우저 보기에서는 줄바꿈이 안되네요.. 아무리 봐도 차이를 모르겠는데 ㅠ.ㅠ
3. 소셜XE -> 아래 난다날아님 답변처럼 n2br php함수(?)  

------------
<우선 1번의 방법으로 해결함>

- 아래 코드는 xpresseditor의 textarea.js 부분에서 가져와 필요한 부분만 수정한 겁니다.
php을 제가 몰라 일단 당장 보이는 에디터를 건드렸는데,
너무 비효율적인 것 같아 다른 분들의 의견을 듣고자 합니다. 
php로 간단히 처리하는 방법이 있다면 알려주심 감사하겠습니다.

ps. 그리고 모바일 스킨에서는 특별한 코드없이 줄바꿈이 되는 데요, 이유를 알 수 있을까요? 이유가 답이겠죠? ^^;;

--------- 이하 수정한 코드 ------------


1. view_document.html 댓글창 부분
<form action="./" method="post" onsubmit="jQuery(this).find('input').each(function(){if(this.title==this.value)this.value='';});return procFilter(this, insert_comment)" editor_sequence="{$oDocument->document_srl}">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$oDocument->document_srl}" />
<input type="hidden" name="comment_srl" value="" />
<textarea  id="editor_{$oDocument->document_srl}" name="content"></textarea>
<input type="submit" value="{$lang->cmd_registration}" />
</div>
</form>
<script type="text/javascript">
editorStartTextarea({$oDocument->document_srl}, "content", "comment_srl");
</script>



2. board.js 에 다음 추가


var editorRelKeys = new Array();
function editorStartTextarea(editor_sequence, content_key, primary_key) {
    var obj = xGetElementById('editor_'+editor_sequence);
    obj.form.setAttribute('editor_sequence', editor_sequence);
    editorRelKeys[editor_sequence] = new Array();
    editorRelKeys[editor_sequence]["primary"] = obj.form[primary_key];
    editorRelKeys[editor_sequence]["content"] = obj.form[content_key];
    editorRelKeys[editor_sequence]["func"] = editorGetContentTextarea;
    var content = obj.form[content_key].value;
content = content.replace(/<br([^>]*)>/ig,"\n");
content = content.replace(/&lt;/g, "<");
content = content.replace(/&gt;/g, ">");
content = content.replace(/&quot;/g, '"');
content = content.replace(/&amp;/g, "&");
    obj.value = content;
}
function editorGetContentTextarea(editor_sequence) {
    var obj = xGetElementById('editor_'+editor_sequence);
    var content = obj.value.trim();
content = content.replace(/&/g, "&amp;");
content = content.replace(/</g, "&lt;");
content = content.replace(/>/g, "&gt;");
content = content.replace(/\"/g, "&quot;");
content = content.replace(/(\r\n|\n)/g, "<br />");
    return content;
}

-----------

글쓴이 제목 최종 글
XE 공지 정치와 관련 되거나 욕설 포함된 컨텐츠 작성에 주의 부탁드립니다.  
BNU 공지 XE 이슈 등록은 Github 프로젝트를 이용해주세요. [13] 2016.07.15 by ZerglingGo
느까끼 XE 버전 관리에 대하여 [4] 2011.04.06 by fsfsdas
cherryfilter 1.4.5.1 배포 안내 [14] file 2011.04.06 by 스마트XE
행복한고니 업데이트) 배포 전에 테스트 부탁드립니다. - 1.4.5.1 문제 수정 [23] file 2011.04.06 by 스마트XE
난다날아 게시물 아이콘 관련 아이디어 [4] 2011.04.06 by 난다날아
Garon P와 BR 레포트. [2] 2011.04.06 by Garon
銀童 최선버전 _setSearchOption 함수 Call-time pass-by-reference  
리라이프 1.4.3 보안 점검 취약 발견 [4] 2011.04.07 by 리라이프
글문 1.4.5.2 버젼 버그인 것 같은데요... [1] 2011.04.07 by 똥똥
한꼬마 검색 오류가 있습니다. [1] 2011.04.07 by 똥똥
fsfsdas 서버운영강의게시판에 [1] 2011.04.07 by 똥똥
케니2 회원모듈 매우 중요한데.......... [1] 2011.04.08 by 인간a
misol 약간의 투덜투덜.. http://xe.xpressengine.net/19678731 관련  
정찬명 공모전 소개 페이지가 열렸습니다. ^^ [6] 2011.04.09 by neostream
SMaker XE의 스킨에 대한 문제점에 대해 토론해봅시다. [2] 2011.04.09 by SMaker
글문 1.4.5 버젼 업데이트 될 적에 변경 사안 중에서 변경되지 않고 있는 것이 있네요.  
푸름빠 모바일 게시판 스킨에서 파일업로드 기능에 대해 [1] 2011.04.11 by DongJaiㅡ★
sangjaezzi XE 스페인어로 번역 지원합니다. [2] 2011.04.11 by misol
BNU 멋진거 커밋되었네요. [7] 2011.04.12 by NetCabin
행복한고니 [설문조사] 운영중인 사이트의 게시판 갯수 최고는? [23] 2011.04.13 by redred
hika1 댓글창을 <textarea>로 만들고<br> 자동입력 [4] 2011.04.13 by hika1