Guestbook

Update: February 27th, 2009

스팸을 제외한 아무 글이나 남길수 있는 공간입니다.

블로그에 글이 안올라올지라도 이곳에 답글은 빠르게 달아드립니다.

  1. January 28th, 2009 at 14:16
    Reply | Quote | #1

    안녕 댣! 오랜만이야
    그냥 니가 생각나서 들러봤어
    늦은 감이 없지 않지만 새해 복 많이 받고 블로그가 발전하길 바라

    • January 29th, 2009 at 17:49
      Reply | Quote | #2

      난 블로그 싸이월드 이런거 하다보면 귀찮아져서 꾸준히 하기가 정말 힘든거같아
      여기도 뭐 내가 만든곳이지만 눈팅이나 하고있지 낄낄
      음… 여기에 쓰면 다시와서 볼지 모르겠지만
      이제 버디버디 접고 슬슬 네이트온으로 오는게 어떻겠니

      너도 새해복 많이 받아랏

      • February 17th, 2009 at 01:22
        Reply | Quote | #3

        네이트온 계정이 있는지도 몰랐는데 이거 뭐죠 너무 어려워요@@
        아이디가 이메일 같은거 맞지? 내 싸이 와서 주소 따 가줘

  2. 이상민
    January 29th, 2009 at 09:33
    Reply | Quote | #5

    안녕하세요. 제로보드를 보다가 들어왔네요.
    정말 깔끔한 스킨이네요.
    http://www.neoease.com 에 들어가서 봤는데.
    지금쓰시고 있는 스킨은 위 사이트를 토대로 만드신건가요?
    도통 어떻게 되는건지 몰라서 이렇게 글을 남김니다.
    좋은 하루 되세요~

    • January 29th, 2009 at 17:53
      Reply | Quote | #6

      이 블로그는 워드프레스라는 블로그 제작툴로 만들어졌습니다.
      그 사이트를 운영하고 있는 분(mg12)이 유명한 워드프레스 테마를 여러개 만들었는데 이곳에 쓰인 테마도 그중 하나입니다. 테마 이름은 Elegant Box 입니다.

  3. February 6th, 2009 at 12:28
    Reply | Quote | #7

    안녕하세요, 실타래 Jin_a입니다. 새해도 되었고 해서.. 이렇게 인사 드리려고 들렸습니다. 2009년에는 더욱 행복한 한 해가 되시구요, 저희 실타래도 ㅠ 사랑 해주세요 ㅠ 저희 더더 발전해서 더 좋은 서비스 만들도록 노력하겠습니다! 감사합니다!!

  4. February 24th, 2009 at 04:25
    Reply | Quote | #9

    안녕하세요. XE의 이미지에디터 컴포넌트를 통해 들어오게 되었습니다. ^^;
    이미지에디터 너무 유용하게 쓰고 있어요. 감사감사~ 감사드려용~★

    지나가다 자취도 남길겸, 이미지에디터의 궁금한 점 질문도 좀 할 겸, 겸사겸사 글 남깁니다.
    여기다 질문을 올려도 되는지 모르겠네요. 에공..^^a
    (양해 부탁드립니다. ㅠㅠ)

    이미지에디터에서 컴퓨터에 있는 사진을 불러올때나,
    편집을 다 끝내고 이미지첨부 버튼을 누르고 확인을 누를때…
    이미지에디터에서 작업된 사진파일들이
    첨부파일저장폴더에(/files/attach/images/….)에 저장이 되고,
    xe_files DB에 기록이 되며,
    첨부파일의 파일리스트 업데이트가 되더라구요.

    이부분을 제가 만들고 있는 에디터컴포넌트에 구현을 하고 싶은데 잘 감이 안오더라구요. ㅠㅠ

    예를들어 이모티콘 컴포넌트를 업데이트한다고 생각하구,
    이모티콘 컴포넌트를 팝업으로 열고, 이모티콘을 선택, 클릭을 하면,
    이미지에디터에 이모티콘이 삽입되는 대신에,
    이모티콘파일이 첨부파일저장폴더에(/files/attach/images/….)에 복사가 되고,
    파일 정보가 xe_files DB에 기록이 된 다음,
    첨부파일의 파일목록에 이모티콘파일이 추가 될수 있는 컴포넌트를 구현하고 싶거든요. ^^

    fileController를 어찌어찌 사용하고,
    uploader.js의 reloadFileList() 함수를 이용하면 될 듯 할 것 같아…
    몇일째 삽질 중인데 잘 되지 않네요. 에고…

    제로보드에서 첨부파일관련 글을 찾아다니다,
    이미지에디터라는 좋은 프로그램을 발견하게되고,
    댣군님께서 제 궁금함의 갈증해소와 고된 삽질의 끝을 볼 수 있게 해주실 수 있을 것 같아,
    고민고민하다 이렇게 글을 남기게 되네요.

    너무 유용한 프로그램 개발해 주셔서 우선 너무 감사드리구요.
    저의 커뮤니티에서 유용하게 쓸 수 있을 것 같아 너무 좋습니다.
    그리고 늦었지만 2009년 대박나세욧~! ^^

    • February 25th, 2009 at 01:36

      이미지에디터는 파일을 첨부할때 httprequest로 파일데이터를 보냅니다. 보통 서버에 파일을 보내듯이 보내는 개념인데요, XE에 데이터를 받아서 처리하는 함수(액션)가 FileController의 procFileUpload이고 그걸 사용해서 간단히 구현하였습니다. 그런데 파일 복사는 얘기가 다릅니다.
      일단 xe코어엔 제가 알기로는 파일 복사를 처리하는 액션이 구현되어있지 않기때문에 파일 복사부터 db에 파일정보를 저장하는 과정까지 직접 구현하셔야 할겁니다.
      uploader.js의 reloadFileList 함수는 첨부파일 내역을 다시 받아와서 보여주는 역할만 하는것입니다.

      만약 xe프레임웍을 잘 이해하시지 못하시거나 프로그래밍 능력이 어느정도 되지 않으시면 그리 쉽지만는 않을 작업일것 같습니다.

      제생각이지만 굳이 파일을 실제로 복사해야될 필요가 있을까 싶습니다. 동일한 파일인데 굳이 복사하는건 아마 대부분의 경우 자원이 낭비되는 형태로 생각됩니다.

      시원한 답변은 되어드리지 못한것 같네요. 수고하세요 ^^

      • February 26th, 2009 at 02:01

        ^^
        제가 XE에 적용하려고 하는 플래쉬로 만들어진 사진에 액자를 넣는 프로그램이 있는데,
        편집된 사진이 무조건 일정한 경로에 저장이 되어 지거든요.

        그래서 그걸 XE의 첨부파일에 포함시키기 위해,
        XE 첨부파일저장폴더에 복사 및 DB에 정보 저장하는 작업이 한번더 필요할 것 같아서요. ^^

        우선 직접 AJAX을 이용해서 직접 만들어 보고 있는데,
        XE를 접한지는 얼마되지 않아 XE에 맞게 적용하기가 쉽지 않네요.

        우선 DB에 파일정보를 저장할때
        file_srl, upload_target_srl, sid, module_srl 정보를 구하기가 힘드네요. 흑..

        아직 내공이 부족하여, 이해가 쉽지만은 않습니다만…
        어느정도 감을 잡을수는 있게 되었어요.
        너무 감사드립니다. ㅋ

        • February 26th, 2009 at 18:12

          http://doc.zeroboard.com
          개발하시는데 여기 참조하시면 많은 도움이 되실겁니다.
          그리고 XE에 비슷한 코드들이 사용된 형태를 보면서 하시면 그리 어렵진않게 감이 잡히실겁니다.

  5. February 26th, 2009 at 17:45

    안녕하세요 ^^

    아이프레임추가 컴포넌트를 참고해서 네이버맵을 아이프레임으로 넣어주는 컴포넌트를 만들고 있습니다.
    XE 구조를 몰라 일단 있는 소스를 수정하는 방법으로 이것저것 해보고 있는데 컴포넌트에서 업로드한 파일리스트를 적용하는데 잘 안되서 질문 드립니다.

    여러가지 컴포넌트를 다운 받아서 보고 있는데 업로드 파일을 얻는 소스를 적용해보니 실제로 동작을 하지 않네요.

    popup.html에서 아래와 같이 입력 하고
    [tr]
    [th scope="row"]{$lang-]log_list}[/th]
    [td]
    [select id="gpslog_list" size="6" multiple="true" class="gpslog_list"]
    [/select]
    [p]{$lang-]about_gpslog_list}[/p]
    [/td]
    [/tr]

    popup.js 파일에서
    // 부모창의 업로드된 파일 목록을 모두 가져와서 세팅
    var fo = xGetElementById(“fo”);
    var editor_sequence = fo.editor_sequence.value;

    var parent_list_obj = opener.xGetElementById(“uploaded_file_list_”+editor_sequence);
    if(parent_list_obj) {

    var list_obj = xGetElementById(“gpslog_list”);

    for(var i=0;i<parent_list_obj.length;i++) {
    var opt = parent_list_obj.options[i];
    var file_srl = opt.value;
    var file_obj = opener.uploadedFiles[file_srl];
    var filename = file_obj.download_url.replace(request_uri,”);
    var opt = new Option(opt.text, opt.value, false, false);
    list_obj.options.add(opt);

    }
    }

    위와 같이 적용을 하였습니다.

    이미지 기본 갤러리 컴포넌트나 제로보드 사이트에 올라온 컴포넌트들을 봐도 모두 이런식으로 되어 있는데 파일 리스트를 불러오지 못하네요.

    참고한 컴포넌트를 모두 검색해봐도 이 부분 외에는 파일 리스트와 관련된 부분은 없습니다.

    xGetElementById(“gpslog_list”) 에서 gpslog_list 값이 따로 설정된 부분도 없고 소스는 동일한데 왜 적용이 안되는 건가요?

    구조를 모른다고해도 같은 소스를 적용하면 동작해야 하는건데 관련 소스의 값들을 모두 검색해봐도 따로 설정되는 부분은 없는것 같습니다.

    작은 점이라도 조언 부탁 드립니다.

    감사 합니다 ^^

    • February 27th, 2009 at 00:41

      popup.html 의 form(id가 fo인 form) 안에 editor_sequence가 있어야합니다.

      위에 써주신 코드를 보시면
      var parent_list_obj = opener.xGetElementById(”uploaded_file_list_”+editor_sequence);
      에서 오프너(원래 창)에서 업로드된 파일목록을 찾는데 editor_sequence가 사용됩니다.
      editor_sequence를 그 윗줄에서 받아오는데 var editor_sequence = fo.editor_sequence.value;
      이런식으로 fo폼 안의 히든인풋에서 받아오게 되어있습니다.
      그런데 상오기님 컴포넌트엔 editor_sequence 부분이 없습니다.

      참고로 말씀드리면 editor_sequence는 한 페이지에 에디터가 여러개 사용될때 구분하기 위해서 사용되는 번호입니다. 한페이지에 여러개가 있으면 1,2,3 이런식으로 증가하면서 하나씩 할당됩니다.

      그럼 수고하세요 ^^

      • February 27th, 2009 at 14:34

        아~ 놓치고 있는 부분이 있었군요
        답변 감사 드립니다 ^^

  6. February 27th, 2009 at 23:44

    덕분에 1차적인 마무리는 하게 되었네요 ^^
    원래는 파일을 처리하는 소스를 컴포넌트 클래스 안에 넣어야 하는데 동작을 안해서 일단은 아이프레임으로 불러오도록 처리 했습니다 ㅠ.ㅠ
    그래도 여기까지 작업 하는데 꽤 걸렸네요
    좋은 주말 보내세요 ^^

  7. March 6th, 2009 at 08:41

    안녕 하세요 ^^
    궁금한게 있어서 다시 찾아왔습니다 ㅠ.ㅠ
    컴포넌트의 class.php 파일에서 DB쿼리를 하려고 하는데 잘 안되네요~

    mysql_query(“SELECT `uploaded_filename` FROM `xe_files` WHERE `sid` = ‘$sid’”)

    이런 쿼리를 이용해 업로드 파일의 경로를 이용하려고 합니다.
    class.php에서

    $args->sid = $sid;
    $url = executeQueryArray(“GPSLogView_test.getUploadFileName”, $args);

    해당 컴포넌트의 쿼리 폴더에 getUploadFileName.xml 로 저장

    로 작성을 하여 실행해보니 아래와 같은 에러가 나네요.

    Object Object ( [error] => -1 [message] => Query ID값이 잘못 지정되었습니다 [variables] => Array ( ) )

    executeQueryArray의 첫번째 인자가 해당모듈이름.쿼리ID 아닌가요?

    뭐가 문제인건지 모르겠네요 ㅠ.ㅠ

    컴포넌트 경로 : /xe/modules/editor/components/GPSLogView_test
    쿼리파일 경로 : /xe/modules/editor/components/GPSLogView_test/queries

    아니면 접근 방향이 처음부터 틀린건가요? ^^

    일단 급한대로 직접 쿼리를 날려서 결과를 받아오게 테스트는 해봤는데 xe 구조대로 하는건 잘 안되네요 ^^:;

    좋은 하루 보내세요~^___^

  8. March 6th, 2009 at 08:44

    쿼리 파일 내용

    [query id="getUploadFileName" action="select"]
    [tables]
    [table name="xe_files" /]
    [/tables]
    [columns]
    [column name="uploaded_filename" /]
    [/columns]
    [conditions]
    [condition operation="equal" column="sid" var="sid" /]
    [/conditions]
    [/query]

    • March 6th, 2009 at 18:44

      에디터 컴포넌트에서 쿼리를 (XE방식대로)사용할수 있는 방법은 없는것 같습니다.
      모듈에선 말씀하신대로 id를 ‘모듈이름.쿼리ID’으로 하시면 되고 애드온이나 위젯에선 ‘addons(widgets).애드온(위젯)이름.쿼리ID’로 쓰시면 되는데 에디터 컴포넌트에선 사용할수있는 방법이 없습니다.
      애드온이나 위젯처럼 될듯하지만 ExecuteQuery 함수를 보니 ‘addons’,'widgets’ 이외가 붙어있을땐 그냥 리턴해버리는 줄이 있네요.

      • March 6th, 2009 at 18:48

        생각해보니 될것같습니다.
        ‘editor/components/컴포넌트이름.쿼리id’ (맨뒤 슬러쉬 없습니다) 이렇게 한번 해보세요.
        확인해보진 않았지만 코드만 보면 될듯합니다.

        • March 6th, 2009 at 21:07

          해봤는데 쿼리ID 오류가 계속 나네요
          일단 그냥 접어둬야겠어요 ㅠ.ㅠ

          • March 7th, 2009 at 11:36

            음.. 될것같긴한데 실제로 해보진 않아서 뭐라고 말씀을 드릴수가없네요.
            executeQueryArray 함수를 보시면서 어디에서 오류메세지가 출력되는지 직접 확인해보시는게 좋을것 같습니다.
            경로에 문제가 있거나/캐시파일 관련 문제가 있거나 둘중에 하나일탠데 문제점을 확인하는데는 그다지 오래걸릴것같진 않습니다.

          • March 7th, 2009 at 17:25

            네 감사 합니다 ^^
            일단 환경 파일의 디비 정보를 불러다가 직접 쿼리를 날리도록 해놨습니다.
            (그전엔 class.php에서 디비 정보 직접 입력했었는데거든요 ^^;;)
            가능하면 xe 구조를 지키고 싶은데 아는게 적은만큼(php외에 공부해야할듯..) 파악하기가 힘드네요.
            그나마 계속 보다보니 컴포넌트쪽은 아주 조금 감이 잡힌것 같기도하고….
            좋은 주말 보내세요~^^

          • March 9th, 2009 at 22:27

            서비스에 쓰인다면 직접 쿼리를 날려도 상관은 없습니다.
            다만 컴포넌트를 배포할 경우에만 직접 쿼리를 날리면 DB가 개발환경에서 사용된 종류와 다르면 문제가 생기기 때문에 XE에 맞출필요가 있습니다.

  9. 손지선
    March 9th, 2009 at 20:47

    이미지 에디터 flex로 만드신 건가요? 저도 flex로 그림판 비슷한 것을 만들고 있는데,
    영역선택에 관해서 조언좀 해주세요.. 오픈소스를 참고하셨다면 꼭좀.^^
    수고하세요~ 학생이시면 뭐보고 flex 공부하셨는지 물어볼게요 ㅎㅎ

    • March 9th, 2009 at 22:05

      소개글에 툴이름은 영역선택이라고 붙여놓았지만 사실상 다른 그래픽 프로그램에서 말하는 일반적인 영역선택(Selection)툴은 구현되어있지 않습니다. 이미지에디터에 구현되어있는 기능은 자유변형(Free Transform)툴입니다.

      오픈소스는 찾아봤던적은 있는데 그래픽 관련에서는 김프외엔 그다지 볼게 없었고 김프는 소스를 볼 엄두가 안나서 결국엔 포기했습니다. (;;
      이미지에디터정도의 기능 구현엔 딱히 도중에 막히는 부분은 없으니 하나하나 구현해보시는것도 나쁘지않구요.

      flex는 as3만 알면 개발하는데 많은 지장은 없습니다. as3는 java와 유사해서 java를 잘 다룬다면 flex는 간단한 예제프로그램 몇개 만들어보면 flex자체에 대해선 공부할게 거의없다고 봐도 무방하고 이후엔 실제로 개발해나가면서 체득하는것밖에 없습니다. 특별히 막히는 부분이 있을때만 레퍼런스나 개발자 커뮤니티같은곳에서 도움을 얻으시면 됩니다.
      책은 본게 없어서 말씀드리기가 어렵네요.

      도움이 될지 모르겠네요.
      Flexcomponent 같은 개발자 포럼에 가시면 고수들이 많습니다.
      그런분들에게 조언을 구하시면 더 나은 조언을 구하실수 있을겁니다. 수고하세요 ^^;;

  10. March 21st, 2009 at 13:15

    댣군님 안녕 하세요 ^^

    궁금한게 있어서 질문 드리려고 찾아 왔습니다 ^^;;

    $iframe_src = “http://gpson.kr/gps.php?log=$log”;

    $body_code .= “[textarea rows=\"4\" cols=\"74\"]<iframe frameBorder=\”0\” src=\”".$iframe_src.”\” width=\”600px\” height=\”600px\”></iframe>[/textarea]로그 퍼가기 소스\n”;

    이런식으로 컴포넌트를 이용하여 transHTML() 에 추가하여
    본문에 textarea로 아이프레임 소스를 보여주려고 합니다.

    아이프레임 주소 : http://gpson.kr/gps.php?log=$log

    그런데 실제 본문에 보이는 아이프레임의 주소는 ttp://gpson.kr/gps.php?log= 이 부분은 다 잘라먹고
    $log 값만 보여지는데 그 이유를 모르겠습니다 ^^;;

    예를들어 http://gpson.kr/gps.php?log=http://horse78.com/maps/test.kml 나와야 하는데 http://horse78.com/maps/test.kml 부분만 나옵니다.

    $iframe_src을 debugPrint로 출력해보면 정상적으로 다 나오는데 실제 게시판에서 보일땐 뒷부분만 보이네요.

    해결 방법이 있을까요? ^^

    좋은 주말 보내세요~~~

    • March 23rd, 2009 at 20:19

      이 문제를 해결하기 위해서 xe\classes\context\Context.class 를 아래와 같이 수정하였는데 괜찮을까요?

      //아이프레임을 허용하여 iframe src=http://gpson.kr/gps.php?log=http://horse78.com/maps/test.kml에서 src의 주소를 http://horse78.com/maps/test.kml만 남기는 문제 때문에 수정
      if (stripos($content, “gps.php”) === false) {
      // templateHandler의 이미지 경로로 인하여 생기는 절대경로 이미지등의 경로 중복 처리
      $content = preg_replace(‘/src=(["|\']?)http:\/\/([^ ]+)http:\/\//is’,’src=$1http://’, $content);
      }

      • March 24th, 2009 at 17:27

        문제점을 찾아내셨군요. 일단 임시방편으로 그렇게 사용하셔도 될겁니다.
        XE코드를 직접 수정하는것은 업데이트시에 또다시 수정해야되는 수고를 해야되므로 좋은 방법은 아닙니다.
        그래서 일반적으로 애드온이나 트리거를 사용하곤 하는데 이문제는 애드온 단에서 해결하기 어려울것같네요.
        XE자체의 문제같으니 일단 그렇게 두시고 XE에 버그신고를 하셔야 언젠가에 해결될 문제인것 같습니다.
        저도 커미터이긴 하지만 요즘엔 잠시 손을 놓고 있어서 직접 도움을 드리진 못하겠네요. 수고하세요 ^^;

        • March 24th, 2009 at 23:17

          xe에서 아이프레임을 막아둔게 기본 설정이라 버그로 올려도 되는 문제인건지 모르겠네요 ^^

          좋은 하루 보내세요 ^___^_

        • March 25th, 2009 at 08:59

          이슈로 등록했더니 밤사이에 수정이 되었네요 ^^

          • March 26th, 2009 at 00:21

            해결이 된듯했으나 다시 검토중으로 바꼈습니다.
            다른 부작용때문에 revert했다고 하는데 자세한건 모르겠네요.
            어찌됐든 곧 늦어도 다음버젼 전까지는 해결될 것 같습니다.

TOP