is윤군이야기2010.01.12 11:20
공개된 다음에디터에 자동 저장 기능이 있는줄 알았는데...
오늘 방명록에 서종훈 라는 님께서 자동저장 부분을 구현 하는데.. 잘 안된다라는 이야기를 하셔서..
아! 안되는구나 하고 알았다..

댓글로 달자니.. 좀 그래서... 걍 간만에 포스팅 ㄱㄱ~~ ;;

예제를 보면..
    function setForm(editor) {
       var _formGen = editor.getForm();           
            var _content = editor.getContent();
            _formGen.createField(
                tx.textarea({
                    /* 본문 내용을 필드를 생성하여 값을 할당하는 부분 */
                    'name': "tx_content",
                    'style': { 'display': "none" }
                },
                _content)
            );
        .......................
        이하 생략 ... 밑에는 이미지 이름을 가져 오는부분..
}

머 이부분을 보면 .. 저장하기 버튼을 누르면 Editor.save(); 이걸 통해서 .
saver.js 의 (Trex.Save) 의 submit 함수가 호출되고 ... 여기서 save 함수를 통해서 ... 결과 확인 후에.. 500 ms 초 후에 form.submit을 호출 하는 구조다..

여기서 save 함수를 보면 일단 validForm 이놈을 한번 호출해서 값을 체크 한번 하고.. 여기서 통화하면 최종적으로 setForm 을 호출 해서 이곳에서 true를 리턴하면... 저정하는 구조인듯... ( 다음 에디터를 이용해서 저장을 한번도 안해본 1인... )

그래서 이분께서는.. setForm 에서 return true; 하는 부분을 지우시고 .. (이러면 ... 저장이 안되니 ... ) ajax를 통해서 .. 자동 저장을 구현하신듯 하다..

머 사설은 길었지만.... 나의 생각은 ajax를 통한 자동 저장 기능은 굳이.. Editor.save(); 이걸 통해서 안하고.. (어차피 save호출 한다고 해도 위에서 이야기 한 것 이외는 다른 기능이 없다.. ( 물론 submit 호출 되기전에..             this.editor.fireJobs(Trex.Ev.__ON_SUBMIT, this.editor); 이놈을 통해서 등록되어 있던 이벤트를 한번 실행 할 수 있는 기회가 있긴 하지만.. )

무튼 결론은... 걍 ajax 용 자동 저장 함수를 하나 만들고 .. 그곳에서  필요한 값을 만드는 해주면 될것 같다..

이분이 jQuery를 사용하시는것 같은디..

function autoSave() {
    var _formGen = Editor.getForm();
    var _content = Editor.getContent();

  if(!$('[name=auto_tx_content]')){
        Editor.getForm()._formGen.createField(
        tx.textarea({
         /* 본문 내용을 필드를 생성하여 값을 할당하는 부분 */
        'name': "auto_tx_content",
        'style': { 'display': "none" }
        }, _content));    
  }else{
    $('[name=auto_tx_content]').val(_content);
  }
  .post('xxxxxx', {tx_content: Editor.getContent());
}

jquery의 val은 textarea의 vaule 값은 안가져 오나보다..ㅋ

머 이렇게 하면 되지 않을까 싶은 생각이 든다... 물론.. title 나 이미지 경로 같은 부분은 추가 되어야 하긴 하지만.. ;;
필드를 생성하는 부분은 맘에 들지 않는다면 jQuery로 직접 생성해줘도 되구요..
createField: function(elField) {
        this.elForm.appendChild(elField);
    },
이게 전부이니까... ㅎ

냠냠 ... 이렇게 구현 하면 되지 않을까 싶긴한데.. 일단 테스트를 안해본거라서 ^^ ;; 틀만 한번.. 생각해보았답니다..

자동저장은 그냥 Editor.save()를 사용하지 않고 .. 따로 구현 해도 될것 같다는 저의 생각입니다..

Posted by is윤군

댓글을 달아 주세요

  1. 와....
    정말 감사합니다 ㅠ.ㅠ
    왜....이 생각을 못했을까요...;;; 참...하여튼 ㅠ.ㅠ
    "자동저장은 그냥 Editor.save()를 사용하지 않고 .. 따로 구현 해도 될것 같다는 저의 생각입니다.."
    명언이네요 ㅎㅎㅎ

    그런데 제가 이렇게 저렇게 좀 해봤는데....결과는 undefined 로 값이 안들어 가고 있습니다...
    움...요럴경우에는 어떻게 해야 할까요? 그리고 만약 id 값으로 넣어 주고 싶다면...

    아무튼 한수 감사합니다 !! ^----------------^

    2010.01.12 13:14 [ ADDR : EDIT/ DEL : REPLY ]
  2. 잘 안되서....google code issue 에서 힌트를 얻어 그냥 간단한게 이렇게 하니깐 되네요 ㅎㅎ

    function autoSave() {
    var _content = Editor.getContent();
    $.post('test2.php', {comment:_content});
    }

    etInterval('autoSave()', 2000);

    감사해요! ^----^

    2010.01.12 17:19 [ ADDR : EDIT/ DEL : REPLY ]
    • 다행이네요 ^^ 잘 되었다니까 ..ㅋㅋ
      textarea 에 담았던건.. 기존에 담길래;;ㅎㅎ
      ㅊㅋ해요 ^^

      2010.01.12 18:22 신고 [ ADDR : EDIT/ DEL ]

봄싹2009.11.14 23:54
오늘 제9회 daum devday에 다녀왔다..
음... 결과는 예상 못한 결과가;;;

처음 아무 생각없이 신청햇고.. 몇일전까지만 해도 안가려고 했다가;;
가게된건데;; 결과는 매우 좋았다..

물론 아침에 .. (새벽까지 밤샘으로 인해.. ) 늦게 일어나는 바람에..
파트너인 정우형이 가지 말자고 하였으나.. 잘꼬득여 어렵게 가서...
일단 맛난 점심으로 기분 풀리고 ~ 삘받아서 코딩하여..
좋은 결과를 얻었다..

이름은 내가 지었다.. wordAssist ... ;;
codeAssist 기능에서에서 따온거다..
프로그래머라면 code assist가 주는 개발속도 향상을 다들 알것이라고 생각한다.
더둑이 api를 많이 쓰는 언어일수록 수많은 api를 쉽게 찾아서 쓸수 있는
ctrl+space 단축키;;ㅎㅎ

그래서 웹에디터에도 .. 이러한 기능을 넣고 싶어서 시작한 거다..
한글은... 국어사전 api 호출/ 영어일경우.. 구글사전 검색창에 있는 서제스트 기능을..
이용해서 영어로 먼가를 적다가 생각이 안나면 컨트럴 스페이스를 누르면 해당 연관 단어들이 커서 바로  밑으로 열린다..

물론 몇시간 안들여서 만든거라.. ㅎ 완성도는 그렇게 높지는 않다... 거의 흉내낸 정도다;;

가장 어려웠던 부분은 ... 마우스로 선택영역을 선택하지 않고.. (현재 저기 위에 있는 사전 버튼을 쓰려면 어떤 불편함이 있는지 사용해보면 안다.. 이게 왜 편리한건지..)  특정 단어를 선택하고... 선택된 값으로 치환 하는 부분이 었고.
그담 어려운건... 현재 작성중인 키 커서(글쓸때 깜박이는커서.. ) 의 위치를 구하기가 애매하다.
물론 마우스 커서위치는 쉽게 구한다..  그리고 난 꽁수를 써서 .. 해결 하긴 했지만..

무튼.. 이런저런 어려움을 짧은 시간에 해결하려다 보니..
코드토 개판이고... 불안정하다;;ㅋㅋ 좀더 다듬에서 plugin으로 다음에디터 코드에 커밋이나 해볼까나;;ㅎ
받아줄지는 모르겟지만.. 안받아주면... 봄싹에서만 그냥 쓰고 ;;ㅎㅎ
무튼 오늘 하루 매우 재미 있고.. 득템한 하루였음..


대략 이런식이다...ㅋㅋ
Posted by is윤군

댓글을 달아 주세요

봄싹2009.11.13 17:16
내일 제9회 Daum DevDay 가 열린다.
걍... 심심해서 참가 신청을 했더니.. 오라고 연락을 주네... 그것도 참가 발표가 안나서..
안가려고 하던참에... 이틀전에 오라는 메일이 팅~;;;
머 그래서 놀다가 오려고 하다가 ...

그냥 삘받아서... 사실은 일등 상품인 닌텐도 위가 받고 싶어서 .. ㅋㅋ
지금 한창 daum editor 소스를 보고 있다.. ;

그런데 부제가 .. 제9회 Daum DevDay(부제 : 나만의 웹에디터 만들기)가 다음과 같이 열립니다.^^  이거다.

나만의 웹에디터.. ;; 머 어울릴지 모르지만..
내가 필요한 기능이 있어서 걍 plugin으로 만들 생각이다.. ㅎ 계획은 완성된다면.. ㅋㅋ & 일등한다면...
오픈하던동 말던동;;

어차피 소스는 봄싹 사이트의 에디터에서 쓰일꺼라서 볼수도 있고 ;; ㅎ

어여 소스 분석 해놓고 .. ~ 내일 가서 열심히 만들어야지;;ㅎㅎ
일등해서 상품 받고 ~~ 봄싹에 기부 합시다 .. ㅋㅋ

무튼.. ;; 음... 일등을 기원하며;; 나의 흔적을 남긴다...

Posted by is윤군

댓글을 달아 주세요