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
에 보면..
fOnAppLoad : function(){
//예제 코드
//oEditors.getById["ir1"].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
},
코드가 있습니다. 주석처리되어 있는데.. 해당 부분을
oEditors.getById[get_id].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
로 대체해주면, 기본 텍스트가 나오게 됩니다.
자바 스크립트 캐시문제로 확인되지 않는 경우에는,
/plugin/editor/smarteditor2/editor.lib.php 에서 config.js 를 불러오는 부분에 ?ver=~ 식으로 버전명을 추가해주면 됩니다.
글수정시에도 해당 내용이 반영되는 문제와, 포커스 이벤트시 사라지지 않는다는 문제가 있습니다.
2) 관리자 > 게시판 설정 > 글쓰기 기본내용
을 이용하는 방법이 있습니다.
해당 내용에 <span style="color:#aaa">기본 내용입니다.</span> 식으로 저장해주면,
placeholder 를 지정한 것과 유사한 효과가 납니다.
다만, 이 방법도 에디터에 포커스를 위치해도 해당 내용이 사라지지 않는다는 문제가 있습니다.
그래서 에디터에 포커스 이벤트가 발생할 때,
기본내용을 삭제하는 스마트에디터용 명령어인
oEditors.getById["wr_content"].exec("SET_IR", ['']);
oEditors.getById["wr_content"].exec("UPDATE_CONTENTS_FIELD", []);
실행해주는 로직을 생각해볼 수 있습니다.
다만, 포커스 이벤트 핸들러 함수 생성을 하는 방법을 아직 찾지 못하였고,
만약 찾는다고 하더라도 다음 문제는..
포커스 이벤트가 발생할 때 마다 내용을 초기화해주면 안되고,
최초의 포커스 이벤트시에만 내용 초기화 방법을 해주어야 되는 문제가 남을 것으로 생각됩니다.
!-->
관리자 에서 각게시판 수정으로 들어가셔서 게시판 디자인/양식부분에 글쓰기 기본 내용에다
넣으면 되는걸루아는데 함해보세요....