smarteditor2에 placeholder 적용하기 채택완료
게시판편집기를 smarteditor2를 사용중이라
/plugin/editor/smarteditor2/
를 확인해보니 파일들이 많군요.
저는 게시판에서 글쓰기시
내용부분에
placerholder를 적용해서 몇글자 적어놓으려고 하는데
에디터에서 도대체 어떤파일의 어딜 수정해야하는지 몇시간째 헤매는중입니다. ㅋㅋㅋ
어느파일일까요? 파일마다 열어서 textarea를 지워보면서 찾는데 도무지...
답변 2개
위지윅 에디터는 단순 textarea 로 되어있지 않고, 에디터 부분은 iframe 으로 처리되는 등
내부적으로는 굉장히 복잡한 매커니즘으로 동작됩니다.
잠깐 살펴보았습니다만, 해결방법을 찾지 못하였고..
참고하실 수 있는 사항 몇가지 남깁니다.
* textarea 는 최초에 텍스트를 가져올 때, 그리고 db 에 저장될 때, 눈에보이지 않게 처리되는 부분으로
거기에 placeholder 속성을 적용해도,
(/plugin/editor/smarteditor2/editor.lib.php 에서 textarea 생성 코드 부분이 있습니다.)
위지윅 에디터에는 반영되지 않습니다.
1) 스마트에디터 자체 제공 기본 텍스트 기능
/plugin/editor/smarteditor2/config.js
에 보면..
</p>
<p>fOnAppLoad : function(){
//예제 코드
//oEditors.getById["ir1"].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
},</p>
<p>
코드가 있습니다. 주석처리되어 있는데.. 해당 부분을
oEditors.getById[get_id].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
로 대체해주면, 기본 텍스트가 나오게 됩니다.
자바 스크립트 캐시문제로 확인되지 않는 경우에는,
/plugin/editor/smarteditor2/editor.lib.php 에서 config.js 를 불러오는 부분에 ?ver=~ 식으로 버전명을 추가해주면 됩니다.
글수정시에도 해당 내용이 반영되는 문제와, 포커스 이벤트시 사라지지 않는다는 문제가 있습니다.
2) 관리자 > 게시판 설정 > 글쓰기 기본내용
을 이용하는 방법이 있습니다.
해당 내용에 기본 내용입니다. 식으로 저장해주면,
placeholder 를 지정한 것과 유사한 효과가 납니다.
다만, 이 방법도 에디터에 포커스를 위치해도 해당 내용이 사라지지 않는다는 문제가 있습니다.
그래서 에디터에 포커스 이벤트가 발생할 때,
기본내용을 삭제하는 스마트에디터용 명령어인
oEditors.getById["wr_content"].exec("SET_IR", ['']);
oEditors.getById["wr_content"].exec("UPDATE_CONTENTS_FIELD", []);
실행해주는 로직을 생각해볼 수 있습니다.
다만, 포커스 이벤트 핸들러 함수 생성을 하는 방법을 아직 찾지 못하였고,
만약 찾는다고 하더라도 다음 문제는..
포커스 이벤트가 발생할 때 마다 내용을 초기화해주면 안되고,
최초의 포커스 이벤트시에만 내용 초기화 방법을 해주어야 되는 문제가 남을 것으로 생각됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인