2번의 경우 맥 + 사파리에서 발생합니다. Firefox는 괜찮군요

사파리 화면
http://ikechoi.homeip.net:8899/attach/1/552765795.png

파이어팍스 화면
http://ikechoi.homeip.net:8899/attach/1/113628297.png

6번 유튜브/flickr화면
http://ikechoi.homeip.net:8899/attach/1/65385904.png

1.
글쓰기 창(TTML + WYSWYG)에 이미지 첨부 후,
- 맥(Leopard) + 사파리 3.2 에서는 이미지 조절이 안됩니다.
- 맥 + 파이어폭스 3.0.4에서는 조절이 됩니다.

2. 편집창에 이미지를 불러온 후, 차후 수정시 이미지를 지워도 attach 디렉토리에 그림파일이 계속 남아 있습니다.
이는 이미지/MP3 다 마찬가지입니다.
또한, 불러온 파일 삭제 명령이 없어 파일을 지울수가 없습니다.

3. WYSWYG 모드에서 커서가 제일 앞/뒤로 가있으면 커서가 안보입니다. 또한 에디터 내에서 커서 옮기기가 너무 어렵습니다.

4. 이미지 두개 왼쪽 정렬모드로 연속 삽입 후, del 을 누르면 이미지 두개가 동시에 다 지워집니다.

5. TTML WYSWYG 모드에서 빈페이지에 이미지 삽입후, 완전 삭제하고 HTML모드로 보면 <br> tag 찌꺼기가 남아 있습니다.

6. Youtube 플러그인 설치 후, 동영상 끌어오기를 하기 위해 클릭을 하면 선택창에서 닫기 버튼이 안보입니다. 문서 에디팅 중이라면, 다 날려야 됩니다.

28

(9 답글들, 질문과 답변 / 사용자 지원에 작성)

넵. true..

php program에 익숙하지 않아 data type에 대한 개념이 없습니다. ^^

감사합니다. 미리 미리 검색해 봤어야 하는데....

그렇지만 아직도 http://tt_attach_path를 사용하는데 의문이 있습니다.
글줄을 읽어 보니, 아마 블로그의 백업과 새로운 사이트로의 이사 등등에 대비해서 절대 url 이 아니 가상 url을 만드신 것 같은데...

- DB 내부적으로는 상대적 주소만 유지한다. (즉, attach/attach_file_x)
- 외부로 보여질때 절대적 URL로 변경한다  http://host_name/ + attach/attach_file_x
    : 이미 내부 포매터에서는 이렇게 사용하고 있더군요. 단, 파일이름 앞에 호스트이름을 붙이는게 아니라 http://tt_attach_path라는 가상변수를 substitute하는 걸로...
    : blogging tool로 주소를 내려보내야 할때도 절대 URL로 변경해서 내려 보낸다.

이렇게 되면, blogging tool에서 올라오는 포스트내의 첨부파일 주소가 절대주소로 되어 있어 이전 등에 문제가 생길 수 있으니

- BlogAPI를 통해서 올라오는 post내의 URL중  http://host_name/attach/.... 만 검출하여 http://host_name 부분만 삭제해서 처리한다.

**
블로그 서버 내부에서는 전부 attach/attach_file_x 형태로만 유지하고, 외부로 보여질때만 절대주소로 변경해서 보여주고, 변경된 내용이 저장될때는 절대주소중 http://host_name/attach 부분만 검출/삭제해서 보관하면 문제가 해결되지 않을까요?

**
BlogAPI 중 첨부파일을 위한 함수 meta.newMediaObject()의 return 값은 URL로 정의가 되어 있는데, 지금 현재 'http://tt_attach_file'이라는 가상문자열을 달고서 리턴되기에 엄밀하게는 리턴값이 URL이 아닌 셈이 됩니다. 나름 표준이라고 정해져 있는걸 지키지 않는셈이죠....

30

(9 답글들, 질문과 답변 / 사용자 지원에 작성)

감사합니다. 하위 개념은 없는 거 였군요...

31

(2 답글들, 스킨 및 플러그인에 작성)

어차피 스킨개발자들도 scratch build-up하는게 아니니  template 형태로 정형화 할 수 있는 부분은 정형화 할 수 있지 않을까요?
이미지를 따로 제작하지 않는 스킨의 경우는 그대로 사용하면 되고, 수정하는 스킨은 동일한 파일명 아래 수정하고,
이미지가 필요없는 경우는 skin배포시 그냥 따라다니고..(어차피 크기는 별로 안크기 부담은 없겠죠).

32

(2 답글들, 스킨 및 플러그인에 작성)

뭐 종류가 여러가지 많이 있지만,
필수적으로, 혹은 사용하던 안하던 스킨을 만들면 반드시 같이 제공해야 하는 이미지들에 대한 naming에 대한 규정은 없는가요?

예를 들면 tag를 표시하는 이미지의 이름은 *항상* skin/image/entryTag.gif로 존재해야 한다. 이런 류의...

일례로, 스탠다드 스킨을 이용해서 스킨을 새로 만들어도(tag image도 새로 바꾸어도) "모든블로그의 최근글보기 Plug-In"의 image/entryTag.gif를 바꾸지 않으면 본문에서 사용하는 tag 이미지와 표지에서 보이는 tag 이미지가 서로 다릅니다.

이는 plug-in을 제작할시  skin/image에 해당 이미지가 있다는 가정을 할 수가 없기 때문이죠.

예전 zeroboard 때도 스킨하나 만져볼려면 이미지 파일들 이름이 제각각이라서 머리가 아팠는데, 이미지파일 이름에 대한 규익이 있으면 좋겠습니다.

:-(

33

(9 답글들, 질문과 답변 / 사용자 지원에 작성)

source 중에...  library/model/blog.api.php를 보면 mt.getPostCategory(...)의 return으로 category id의 array만 리턴하는 것으로 되어 있습니다. (source line 894 version 1.7.6)

function mt_getPostCategories()
{
        $params = func_get_args();
        $result = api_login( $params[1], $params[2] );
        if( $result )
        {
                return $result;
        }

        $post = new Post();
        $post->open( intval( $params[0] ) );

        $cat = array( $post->category );
        $post->close();


        return $cat;
}

그런데, mt.getPostCategories()의 정의(http://www.sixapart.com/developers/xmlrpc/movable_type_api/mtgetpostcategories.html)에 따르면 return값은

{string categoryName, string categoryId, Boolean isPrimary}의 structure array로 정의 되어 있네요.

source 를

function mt_getPostCategories()
{
        $params = func_get_args();
        $result = api_login( $params[1], $params[2] );
        if( $result )
        {
                return $result;
        }

        $post = new Post();
        $post->open( intval( $params[0] ) );

        $catId = array($post->category);
        $catName = api_getCategoryNameById( $post->category );

        $post->close();

        $returnCat = array(0);
        $returnCat[0] = array( "categoryId" = $catId, 
                                            "categoryName" = $catName,
                                            "isPrimary" = 1);


        return $returnCat;
}

와 같이 리턴 값을 변경하니 에러 없이 잘 진행 됩니다....

계층으로 되어 있는 하위 분류의 경우는 어떻게 처리되는지 몰라서... 안되는군요.

34

(9 답글들, 질문과 답변 / 사용자 지원에 작성)

맥에서 ecto를 블로그툴로 사용하려 하고 있습니다.

작성된 글을  ecto로 불러오는 중 에러가 나서 콘솔출력을 보니 다음과 같더군요.

<methodName>mt.getPostCategories</methodName>
<params>
    <param>
        <value><string>13</string></value>
    </param>
    <param>
        <value><string>userid</string></value>
    </param>
    <param>
        <value><string>password</string></value>
    </param>
</params>
</methodCall>

에 대한 응답으로

Response:
Status            : 200
X-Powered-By      : PHP/5.2.6
Expires           : Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control     : no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Keep-Alive        : timeout=15, max=99
Pragma            : no-cache
Server            : Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2
Content-Type      : text/xml
Date              : Mon, 01 Dec 2008 04:20:20 GMT
Content-Length    : 198
Connection        : Keep-Alive

<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
  <params>
    <param>
    <value>
             <struct>
             <member>
                   <name>0</name>
                   <value><string></string></value>
             </member>
             </struct></value>
    </param></params>
</methodResponse>

이 부분에서 ecto가 에러를 냅니다. 그 이유가 뭔지는 모르겠지만, 서버형 텍스트큐브의 경우 mt.getPostCategories의 response 는

<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
  <params>
     <param>
            <value>
            <array>
            <data>
                 <value>
                 <struct>
                 <member>       
                       <name>categoryId</name>
                       <value><string>4871</string></value>
                  </member>
                  <member>
                        <name>categoryName</name>
                        <value><string>music</string></value>
                  </member>
                  <member>
                         <name>isPrimary</name><value>
                         <boolean>1</boolean></value></member>
                  </struct></value></data>
             </array></value>
     </param></params></methodResponse>

와 같이 옵니다.

둘간의 차이는 서버형의 경우 response가 structure의 array 형태로 오는 것 같고, 설치형은 그냥 보내는 것 같습니다. 서버형의 경우 ecto가 에러 없이 잘 동작합니다.

이 차이 때문에 클라이언트가 에러를 내는 것일까요?