MT용 플러그인 - QuickImagePost - Updated, mozilla extension included 

Simple View | Forum View

QuickImagePost 는 Movabletype용 북마클릿 툴인 QuickPost 혹은 예전의 Bookmarklet을 보완한 플럭인입니다.

기존의 QuickPost툴을 사용해서 크게 두가지 다른 활용을 하는데, 하나는 트랙백을 걸 새로운 엔트리를 해당 페이지 상에서 직접 간편히 작성하고자 할 때이고, 다른 하나는 소위 링크블로그라는 형식의 로깅을 하는 도구로 사용됩니다.

이 QuickPost / Bookmarklet이 해당 페이지 정보를 기본 타겟으로 한다면, QuickImagePost는 페이지 상에 삽입되어 있는 특정 이미지를 타겟으로 엔트리/링크 블로그를 만들수 있게 해주는게 포인트입니다.

해당 페이지의 설명적 문구인 제목을 이용한 포스트나 링크블로그보다, 그 페이지에 삽입되어 있는 특정한 이미지를 대표로 엔트리를 만들고 싶은 경우에, 기존의 QuickPost로는 입력창을 띄운 후에, 원하는 이미지의 소스 정보를 수동으로 알아낸 후, 직접 입력창에 img 태그를 이용해 입력해야 했습니다.

QuickImagePost는 이런 두단계의 방법을 간소화시켜, 특정 이미지 위에서 마우스 오른쪽 버튼의 컨텍스트메뉴상의 QuickImagePost를 실행시키면, 해당 이미지를 내포한 링크 형태로 직접 엔트리 입력창에 자동으로 해당 페이지에 대한 링크가 걸린 이미지 태그를 넣어줍니다.

또한 자신의 서버상에 직접 보관해서 좀더 이미지의 Persistence를 높게 하고 싶은 경우, 별도의 QuickImagePost-Save메뉴를 선택하면, 자신의 블로그서버에 미리 세팅된 폴더아래에 년/월 식의 폴더 트리 구조내에 해당 이미지를 바로 저장할수도 있습니다.

예 )
http://alogblog.com/quickimagepost-test-blog/ 일반적인 블로그의 한 엔트리로서 사용
http://alogblog.com/ilog/ 조금 응용해서 새로운 블로그를 전용으로 만들어서, 뉴스내용을 대표하는 이미지를 따서 로깅용으로 적용해본 블로그.

 

업데이트된 특징들

  • 기존 QuickImagePost가 IE엔진을 사용하는 브라우져에서만, 마우스 오른쪽 버튼 메뉴를 사용해 구현이 가능했지만, 이번에는 Mozilla 브라우져(Mozilla Suite, Firefox)에서도 마우스 오른쪽 버튼에 의한 컨텍스트 메뉴 형식으로 가능하도록 Extension이 별도로 구현 되었습니다.
  • Mozilla계통의 브라우져에서, 기존의 툴바에 북마크 형식으로 사용했던 QuickPost기능도, 마우스 우클릭 컨텍스트 메뉴로 같이 구현 되었습니다. 즉, 일반 페이지 상에서 우클릭하면 QuickPost메뉴가, 이미지 위에서 우클릭하면 QuickImagePost 메뉴가 뜹니다.
  • 해당 페이지의 텍스트 일부를 마우스 드래그로 Selection해서 QuickImagePost/QuickPost를 사용할 경우에, 기존의 QuickPost의 경우에, 자신의 블로그 인코딩이랑 해당 페이지의 인코딩이랑 다를 경우, 혹은 IE나 Firefox 등에서 URL을 어떻게 보내도록 세팅해 두냐에 따라서, 셀렉션한 한글이 깨집니다. 이 부분을 IE/Firefox 모두에서 문제가 없는 방법이 구현되었습니다.

Firefox 익스텐션 사용법

압축파일 내에 있는 xpi 파일을 자신의 로컬컴에 받은 후, 모질라/파이어폭스 브라우져의 파일/파일 열기 메뉴로 xpi파일을 읽어들이면, 익스텐션이 설치됩니다.

브라우져를 재가동한 후, 도구-확장기능 메뉴를 실행해서, 설치된 QuickImagePost부분을 찾아서 더블클릭하면, 설정창이 뜹니다. 여기서 자신의 블로그의 mt.cgi의 URL을 입력하고, QuickImagePost입력창의 엔트리 작성화면에 표시할 부분을 체크박스 클릭으로 설정해줍니다.

QuickPost를 사용하고자 할 경우엔, 그냥 IE처럼 해당 페이지상에서 우클릭하면 뜨는 컨텍스트 메뉴에서 선택하면 창이 뜨고, QuickImagePost를 사용하고자 할 경우엔, 이미지 위에서 우클릭한 후, 해당 이미지를 서버에 저장하고 싶으면 QuickImagePost-Save, 아니면 그냥 QuickImagePost메뉴를 클릭하면 됩니다.

페이지내의 한글텍스트 드래그선택값이 모든 경우에 잘 작동하기 위한 수정사항

자신의 블로그 인코딩과 다른 인코딩을 사용하는 페이지상에서, 혹은 IE/Firefox등의 URL전송 설정값에 관계없이 마우스로 선택한 텍스트 부분이 깨지지 않고 잘 나타나게 하기 위해서, 기존의 MT플럭인으로 처리하기엔 성격상 맞지 않고, 너무 복잡해 져서 어쩔수 없이, 소스에 직접 추가하는 방식으로 해결해야 합니다.

mt/lib/MT/App/CMS.pm 파일을 열고,

900라인(?) 근처쯤에 있는 아래 부분을

                 require POSIX;
                $param{created_on_formatted} = $q->param('created_on_manual')
                               || POSIX::strftime("%Y-%m-%d %H:%M:%S",
                                           offset_time_list(time, $blog));
                if ($q->param('is_bm')) {
                    $param{selected_text} = $param{text};
                    $param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),
                        scalar $q->param('link_title'),
                        scalar $q->param('link_href'),
                        scalar $q->param('link_title'),
                        $param{text};

아래처럼 추가/수정해주면 됩니다.

                require POSIX;
                $param{created_on_formatted} = $q->param('created_on_manual')
                               || POSIX::strftime("%Y-%m-%d %H:%M:%S",
                                           offset_time_list(time, $blog));
                if ($q->param('is_bm')) {
### # 추가-시작
### #
use Encode qw(encode decode);
use Encode::Guess qw(euc-kr ksc5601-raw utf-8);
my $my_encoding = $app->{cfg}->PublishCharset;

my $tmp_encoding;
if($param{text}) {
        $tmp_encoding = guess_encoding($param{text});
        $param{text} = encode($my_encoding, $tmp_encoding->decode($param{text}));
}

my $link_title = $q->param('link_title');
if($link_title) {
        $tmp_encoding = guess_encoding($link_title);
        $link_title = encode($my_encoding, $tmp_encoding->decode($link_title));
}

my $link_href = $q->param('link_href');
if($link_href) {
        $tmp_encoding = guess_encoding($link_href);
        $link_href = encode($my_encoding, $tmp_encoding->decode($link_href));
}
### #
### # 추가-끝

                    $param{selected_text} = $param{text};
                    $param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),
                        scalar $link_title, # 수정 1
                        scalar $link_href,  # 수정 2
                        scalar $link_title, # 수정 3
                        $param{text};

설치와 원 설명은,
http://alogblog.com/alog/archives/2005/03/17_mt용_플러그인_quickimagepost/

Post a comment

  • PGP/GPG 서명된 코멘트를 지원합니다. ?
  • 이메일 주소는 정중히 사절합니다.
  • 이름(닉네임)/블로그 주소는 필수 입력사항입니다.
  • 이미지는 자기 블로그상의 대문이미지 등을 사용하셔도 좋습니다.
  • 코멘트에 달린 이미지를 클릭하면 자신의 블로그로 연결됩니다.
  • 깨진 블로그/이미지 주소를 가진 코멘트는 수정/삭제 대상입니다.


  •   Forget me

    ?