그누보드4의 cheditor5 플래시를 ajax로
여러 버전이 있고, 또 뭔가 좀 안맞는 구석도 있고 해서 다시 정리해서 올립니다.
복붙하지 마시고 본인의 에디터를 살펴보고 적당히 수정해서 넣으세요.
1) 플래시 버튼을 막는다.
이 에디터는 플래시 버튼을 자동으로 생성합니다.(html에 박혀있는게 아님)
그래서 자바스크립트를 수정해서 플래시 버튼 생성과 제거 부분을 모두 차단해야합니다.
이것부터 해결하자면
/cheditor5/popup/image.html 위쪽에 플래시용 자바스크립트 주석처리
/cheditor5/popup/js/image.js에서 플래시 버튼 생성부분 주석처리
function initEvent <--를 검색하시면 나오는데 거기 안의 내용을 모두 주석처리
(function initEvent() { }는 남겨야함. 함수까지 이름까지 주석처리 하지 마세요.)
swfobject.removeSWF(AppID); <-- 검색해서 나오면 모두(두어개 있습니다.) 주석처리
없으면 그냥 패스
그리고 jquery를 쓸 것이므로 jquery로 하나 넣어주겠습니다.
뭐 이런식(버전마다 다름)
2) 이제 플래시 버튼 대용으로 이미지 버튼을 활용한다.
/cheditor5/popup/image.html 에서
<div id="oFlashButton"></div> 나 <td id="oFlash"></td> 를 찾는다.(위에 있음)
3) 이제 새 업로드 버튼이 동작할 자바스크립트를 추가해줌
/cheditor5/popup/js/image.js 맨 밑에다 붙여줌
주의사항! image.js에서 function uploadComplete 검색해서 찾아보면
function uploadComplete(image) 이면 결과값이 json이라는 의미(오브젝트)
function uploadComplete(fileData) 이면 결과값이 문자열이라는 의미(텍스트)
따라서 아래 코드에서 $.ajax 부분에 dataType: "text", 을
dataType: "json",
dataType: "text",
본인의 상황에 맞게 수정해줌.
4) 이제 /cheditor5/imageUpload/upload.php 에서 오는 반환 값을 정리해줌
5) 이미지 삭제하기
/cheditor5/popup/js/image.js 에서
function imageDelete --> 이걸 검색해서
이런 내용이 나오거든 아래와 같이 고쳐줍니다.
var chximage = document.getElementById(AppID);
chximage.ImageDelete(encodeURI(filePath));
일단 여기까지.
6) 마지막으로 iframe 내에 불러오는 것이라 캐시 갱신을 좀 해주셔야합니다.
/cheditor5/popup/image.html 을 열어서
dialog.js 를 dialog.js?v=아무글자
image.js 를 image.js?v=아무글자
/cheditor5/cheditor.js 를 열어서
popupWinLoad : function 을 검색해서
이런식으로 수정 popupAttr 인지 popupInfo 인지 구분해서
7) 다 잘되는데 DB에 인서트시 이미지 태그가 사라져 버리는 경우. 아래 부분을 수정해보세요.
에디터가 들어가는 스킨, 예를 들어 /skin/board/basic/... 이런 식이라면
write.skin.php 의 아래 부분에 fwrite_submit() 함수가 있을거에요.
아래 처럼 echo cheditor3('wr_content'); 가 내용 체크 보다 먼저 나오면
아래 처럼 순서를 한번 바꿔보세요.