<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>alogblog&apos;s MTy plugins!</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/" />
    <link rel="self" type="application/atom+xml" href="http://alogblog.com/movabletype/korean_plugins/atom.xml" />
   <id>tag:alogblog.com,2008:/movabletype/korean_plugins//2</id>
    <link rel="service.post" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2" title="alogblog's MTy plugins!" />
    <updated>2006-08-03T06:43:05Z</updated>
    <subtitle>MT is empty. We can fill it with our imagination.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>EnjoyYourPosting, MT 3.3용 FCKedior 및 인터페이스 제공 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/enjoyyourposting_mt_33용_fckedior_및_인터페이스_제공_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=79" title="EnjoyYourPosting, MT 3.3용 FCKedior 및 인터페이스 제공 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.79</id>
    
    <published>2006-08-03T05:38:56Z</published>
    <updated>2006-08-03T06:43:05Z</updated>
    
    <summary><![CDATA[Go to English entry &nbsp; 무버블타입 3.3 버전에 맞춘 EnjoyYourPosting은, 엔트리 에디팅과 퀵포스트에 훌륭한 위지윅 에디터로 손꼽히는&nbsp;FCKeditor를 자동 내장시켜주며, 또 이전에 alogblog's MT 인터페이스라 칭했던 몇가지 엠티 인터페이스 스타일을 적용할 수 있도록 해주는 플러그인입니다. 이전 버전에서 이 플러그인은 FCKeditor를&nbsp;제 alogblg's...]]></summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="http://alogblog.com/movabletype/plugins/enjoy_your_posting/">Go to English entry</a></p>
<p>&nbsp;</p>
<p><a class="technorati" href="http://technorati.com/tag/무버블타입" rel="tag">무버블타입</a> 3.3 버전에 맞춘 EnjoyYourPosting은, 엔트리 에디팅과 퀵포스트에 훌륭한 위지윅 에디터로 손꼽히는&nbsp;<a class="technorati" href="http://technorati.com/tag/fckeditor" rel="tag">FCKeditor</a>를 자동 내장시켜주며, 또 이전에 alogblog's MT 인터페이스라 칭했던 몇가지 엠티 인터페이스 스타일을 적용할 수 있도록 해주는 플러그인입니다.</p>
<p><a href="http://alogblog.com/movabletype/plugins/full_featured_fckeditor_on_movable_type/">이전 버전</a>에서 이 플러그인은 FCKeditor를&nbsp;제 alogblg's MT interface상에서만 사용할 수 있었고, 기본 엠티 인터페이스에서는 불가했습니다. 그 이유는 히스토리상 alogblog's MT interface가 먼저 개발되었고, 이후에 몇몇 유저들의 요청에 의해 위지윅을 붙이다보니까, 좀더 화면 폭이 넓은 제 인터페이스에 맞게 손쉽게 추가한게 그 이유입니다. 하지만 몇몇 분들은 제 인터페이스를 혐오하셨고 또 멀리 이란의 유저(글을 오른쪽에서 왼쪽으로 씁니다)들은 자신들만의 이유로 엠티 고유의 인터페이시를 원하시는 요구가 있었기에, 이번에는 완전히 인터페이스와 위지윅 에디터를 디커플링시켰습니다. 즉 인터페이스 선택과 FCKeditor 선택이 각각 독립적으로 가능하게 되었다는 것입니다.</p>
<p>또 이번 버전에서는 이전 버전에서 사용했던 스타일 스위칭 방법을 버리고 정적인 방법으로 바꿈으로서, 로딩 속도를 현저히(?) 개선했습니다. 또 이전&nbsp;FCKeditor 버전에서는 메뉴의 각종 툴바 아이콘을 따로 따로 불러 들이는 방식이라 로딩속도가 좀 걸렸는데, 새로 장착한&nbsp;2.3.1최신 버전에서는 하나의 단일 이미지로 개선해서 이 또한 로딩 속도 개선에 도움을 주고 있습니다. 어쨋든 이전 버전에 비해 눈에 보이는 기능외에 내부적 처리 루틴에도 신경을 좀더 써서 개발했기에, 느끼실지 어쩔지는 모르겠지만 좀 빨라졌습니당.</p>
<p>그리고&nbsp;제가 예전에 만들었던 FCKeditor의&nbsp;Tagging 플러그인을 추가하고 엠티 시스템이랑 좀더 유기적으로 움직이게 손을 봤습니다.</p>
<p>마지막으로&nbsp;FCKeditor의 또다른 멋진 이미지 관련 플러그인인 &quot;ImageManager&quot;를 결합시켰습니다. 업로드한 이미지를 즉석에서 크기 변경, 회전, 잘라내기, 워터마킹 등을 할 수 있게 해주는 멋진 놈입니다.</p>
<p><img alt="" src="http://alogblog.com/mt32/mt-static/FCKeditor/emoticons/wink_smile.gif" />&nbsp;이번 &quot;EnjoyYourPosting&quot;은 개발 과정에서 골치가 많이 아팠던 놈입니다. 자세한 설명은 생략하구요, 어쨋든 그래서 이 설명 엔트리가 그리 자세하지 못합니다. 대충은 아니지만, 그리 자세하진 못한 느낌입니다. 혹 이런 저런 문제나 의문이 생기시면, 일단 이전 엔트리도 좀 보시구요, 또 다른 관련한 포럼 등도 먼저 한번 보시길 바랍니다.</p>
<p>어쨋든 제&nbsp;&quot;EnjoyYourPosting&quot; 플러그인으로, 한국의 한줌(한 열분? ㅋㅋㅋ) 엠티 유저님들이 좀 더 편리한 엠티 블로깅을 하실 수 있길 바람니다.</p>]]>
        <![CDATA[<h4>Requirement</h4>
<ul>
    <li>무버블타입 <strong>3.3</strong> </li>
    <li>PHP (FCKeditor의 미디어 브라우저 기능이나 <a class="technorati" href="http://technorati.com/tag/imagemanager" rel="tag">ImageManager</a> 플러그인을 사용하려면) </li>
    <li>GD, ImageMagick 또는 NetPBM 툴 (ImageManager의 이미지 회전, 크기 조절, 잘라내기, 워터마킹 등의 기능을 사용하려면) </li>
</ul>
<h4>For pre-version users</h4>
<p>이전의 alogblogMTinterface라는 이름의 플러그인을 사용했던 분들은, 기존의 FCKeditor 버전보다 향상된 최신 버전 2.3.1이 이 플러그인에 포함되어 있기때문에, FCKedior 또한 업데이트를 하계되는 셈인데, 문제는 이전 버전 폴더에 바로 덮어써도 별 문제가 없는지 제가 정확히 알지 못한다는 것입니다. 따라서 일단 설치전에 기존의 (mt 홈)/FCKeditor/ 폴더를 사용중인 분은 이 폴더 이름을 다른 것으로 변경하신후, 혹 이 폴더내에 개인 데이터가 존재한다면 새로운 폴더내로 복사하시는 방법으로 설치하시기 바람니다.</p>
<h4>Installation</h4>
<p><a href="http://alogblog.com/downloads/cdn.cgi?EnjoyYourPosting-3.3.02.tar.gz">이 플러그인</a>을 받은 후&nbsp;(mt 홈) 폴더 밑에서 $ tar xvfz EnjoyYourPosting-3.3.02.tar.gz 식의 명령으로 풀면 됩니다. 서버상에서 wget 명령으로 압축 파일을 바로 받으시는 방법은 알고 계시겠죠?</p>
<h4>Step by step</h4>
<p>0.<br />먼저 엠티의 메뉴 페이지를 열어 보세요. 디폴트로 &quot;클래식&quot; 스킨이 적용되어 나타날 것입니다. 맘에 안드시면 다른 것 혹은 원래 엠티 인터페이스로 바꿀 수 있습니다. 뒤에 설명합니다.</p>
<p>1.<br />FCKeditor는 엔트리의 텍스트 포맷(Text Formatting)이 &quot;FCKeditor&quot;로 설정되어 있을 때만 나타납니다. 매 엔트리에서 설정할 수도 있지만, 그럴 경우 다시 저장했다 열어야 되므로, 블로그 기본 설정에서 미리 정해주는 것이 좋습니다.&nbsp;블로그 설정(Edit Weblog Configuration) -&gt; 고급설정(Switch to Detailed Settings) -&gt; 새 엔트리 디폴트(New Entry Defaults) 메뉴에서 디폴트 텍스트 포멧으로 &quot;FCKeditor&quot;를 선택하고 저장하신 후, 새 엔트리를 열어보면 FCKeditor가 나타날 것입니다.</p>
<p>디폴트는 엔트리 본문과 확장문 모두에&nbsp;FCKeditors가 적용되어 나타납니다.</p>
<p>2.<br />&quot;저자 프로필(<strong>Author Profile)</strong>&quot; 메뉴로 가보세요(그냥 현제 페이지의 상단 오른쪽의 자신의&nbsp;ID를 클릭하면 빠릅니다). 그러면 저자 프로필의 하단에 새로운 메뉴 섹션이 추가된걸 보실 수 있습니다. 거기에서 원하는 스타일이나 원래 엠티 인터페이스 등으로 전환할 수 있습니다.</p>
<p>옵션에서 &quot;FCKeditor 사용하기&quot;를 선택하지 않으면 당연히 MT 3.3의 기본 에디터가 나타나게 됩니다. 여기서는 엠티의 블로깅 툴은 퀵포스트에서의 에디터 설정까지 가능합니다.</p>
<p>아시다시피, 이 설정은 저자(author)별로 자신의 취향에 맞게 커스터마이징할 수 있도록 개선되었습니다.</p>
<p>아래 그림은 저자의 선호 언어로 영어를 택했을때의 메뉴 모습인데, 이해하는데 별 지장은 없으리라 봅니다.</p>
<p><img alt="" src="http://alogblog.com/movabletype/plugins/images/exam-author-kr.png" /></p>
<p>3.<br />시스템 메뉴(System-wide) 상의 플러그인 목록 페이지로 가보세요. 여기서는 이모티콘의&nbsp;URL과 퀵포스트에서 사용할 UserFiles 폴더의 URL을 설정할 수 있습니다. 이모티콘은 여러 블로그 사이에서 공용으로 사용하는 자원이기 때문에 시스템 메뉴 레벨에서 설정하는 것입니다. 만약 디폴트 위치인 (mt home)/mt-static/FCKeditor/emoticons/ 아래의 이모티콘 파일들을 다른 별도의 위치로 옮긴다면, 여기서 그 위치를 지정해줘야 합니다.</p>
<p>이번엔 UserFiles 폴더에 대해 설명하겠습니다. 이 UserFiles라는 폴더 이름은 FCKeditor에서 유래합니다. 이 위지윅 에디터는 사용자가 업로드하는 각종 파일/플래시/이미지를 UserFiles/라는 폴더의 하위 폴더에 각각 File/Flash/Image 라는 이름으로 나눠서 저장하는 방식을 채택하고 있습니다. 즉 UserFiles/의 위치를 정한다는 의미는 업로드할 파일들의 저장 위치를 정하는게 됩니다. 이 UserFiles/ 폴더는 각 블로그 마다 달리 설정할 수있습니다(뒤에 나옵니다). 즉 블로그 마다 저자가 다른 경우에는 각기 다른 저장 폴더를 가질 수 있는 경우를 상정한 것입니다. 그런데 &quot;퀵포스트&quot;는 조금 다릅니다. 퀵포스트는 특정한 블로그에 구속되는 방식이 아니라, 한 저자가 가진 모든 블로그에 공통된 화면입니다. 따라서 이를 동적인 방법으로 사용자가 특정한 블로그 A를 퀵포스트에서 선택했을 경우, 그 블로그의 UserFiles/을 가져와서 즉석에서 그것을 적용하는게, 제가 아는 FCKeditor API로는 불가능합니다. 따라서 퀵포스트를 통해 파일을 업로드 하는 경우에는, 블로그마다 달리 하지 않고, 공통한 한(그래서 시스템 메뉴에서 정합니다)&nbsp;폴더에 저장하는 방식을 사용하게 된 것입니다. 먼 소린지 까리 하십니까? 퀵포스트를 조금 써보시면 쉽게 아실 수 있을 겁니다. 하지만 대부분의 엠티 유저들이 하나의 엠티 인스턴스에 저자가 자신 혼자만인 시스템으로 운영하는데, 이럴 경우 결과적으로는 크게 차이가 없음을 아실 수 있을 겁니다. 즉 하나의 UserFiles/ 폴더에 다수의 블로그에서 공통으로 사용하는 경우가 일반적일 것이기 때문에, 별 문제가 없다는 것입니다. 잘 모르겠으면 걍 패스해도 됩니다.</p>
<p>4.<br />이제 블로그 레벨의 플러그인 목록 메뉴로 가보세요. 거기에선 세가지 옵션을 설정할 수 있습니다.&nbsp; UserFiles/ 폴더에 대한 설명은 위와 같습니다.</p>
<p>블로그 데이터 사용하기(Use blog's data)라는 옵션은 메뉴 문구로만으로는 이해하기 어렵죠. FCKeditor는 사용자가 에디터의 각종 메뉴&nbsp;특히 콤보 메뉴의 항목을 개인화해서 사용할 수 있도록 해줍니다. 예를 들어, 템플릿을 이용해서 자주 사용하는 문서의 기본 포맷을 저장해 두었다가, 새로 그런 유형의 문서를 작성할 때는 템플릿을 열면 기본 틀이 미리 삽입됩니다. 일반 워드프로세서의 템플릿이랑 같은 기능이죠. 또 스타일이라고 해서 특정한 CSS를 적용한 스타일을 쉽게 적용할 수도 있습니다. 이런 기능을 위해 FCKeditor는 fck_editorarea.css, fckstyles.xml, fcktemplates.xml 파일을 각각 요구합니다. 디폴트로는 (mt home)/mt-static/FCKeditor/ 폴더 아래의 파일을 사용하도록 되어 있습니다. 이 말인즉슨, 모든 블로그에서 공통된 스타일/템플릿을 사용하게 된다는 것이겠죠? 하지만 특별한 경우 블로그 마다(주로 저자가 다른 경우?) 각기 다른 템플릿/스타일 등을 사용할 수도 있는데, 그럴 경우에 바로 이 옵션을 켜야 합니다. 만약 그 경우엔 블로그의 루트 경로에 위 세 파일이 존재해야 합니다. 이것은 제가 마련한 add-default-template 플러그인을 이용해 쉾게 좀더 시스템적으로 할 수 있습니다. 이건 예전 버전 엔트리를 참조하세요</p>
<p>결론적으로 먼 소린지 아직 잘 모르겠다 싶으시면 걍 디폴트...</p>
<p><img alt="" src="http://alogblog.com/movabletype/plugins/images/exam-fckstyle.png" /></p>
<p>마지막 옵션은&nbsp;제가 만든 FCKeditor의 Tagging 플러그인과 관련됩니다. 이것은 에디터 상에서 특별히 태그화 하고 싶은 문자열을 선택한 후, 원하는 태그 메타 사이트를 선택하면, 선택한 문자열이 태그 링크화되게 해주는 FCKeditor용 플러그인입니다. 이것을 이번 EnjoyYourPosting 플러그인에서 기본으로 삽입하고, 또 엠티 체계랑 궁합이 맞게 기능도 좀 넣었습니다. 즉, MT 3.3에서는 태그 기능이 강화되었는데, 이 Tagging 플러그인을 이용해 선택한 문자열이 자동으로 엔트리의 키워드 혹은 태그 필드에 삽입되도록 하는 기능이 그것입니다. 만약 원치않는다면 None을 옵션에서 선택하면 됩니다.</p>
<p><img alt="" src="http://alogblog.com/movabletype/plugins/images/exam-tagging.png" /></p>
<p>5.<br />이제 새 엔트리 페이지를 한번 열어 보세요. 그리고 FCKeditor의 이미지 버튼을 클릭해 봅니다. 그런 후 그것을 이용해 이미지를 업로드해보거나 서버상의 이미지들을 브라우징해보세요. 이미지의 디폴트 저장 위치는 앞서 말씀드린대로, (mt home)/mt-static/FCKeditor/UserFiles/Image/ 폴더입니다. 만약 업로드 실패 등등의 문제가 생기면 해당 폴더의 권한을 777 등 풀로 설정해보세요.</p>
<p>6.<br />이번에 새로 EnjoyYourPosting을 선보이면서,&nbsp;&quot;Image Manager&quot;라는 FCKeditor 플러그인을 별도로 삽입해 보았습니다. 물론 기존에 FCKeditor에 앞선 미디어(파일/플래시/이미지) 브라우저 기능이 훌륭하게 제공되고 있지만, 이 이미지매니저 플러그인을 보니 꼭 넣어서 다른 분들도 간편하게 이용하실수 있으면...하는 바람이 생기지 않을 수 없을 정도로 괜찮은 놈같아서 넣어 봤습니다. 버튼 메뉴를 통해서도 열수 있고, 이미 삽입되어 있는 이미지를 더블클릭해도 열립니다. 다른 기능보다도 업로드한 이미지를 즉석에서 크기를 변경하거나 회전, 잘라내기, 특히 워터마킹하는 기능이 맘에 듭니다.</p>
<p>워터마크라는 것은 자신의 블로그 이름이나 저작권 표시 등등을 적은 그럼을 조금 투명효과를 가미해서, 실제 그림을 보는데 지장이 없게 삽입하는 이미지를 뜻합니다. 투명도도 조절할수 있고, 삽입위치도 마음대로 혹은 특별한 위치(가령 상단 중앙, 상단 오른쪽 등등)에 자동으로 넣을 수도 있구요... 하여튼 써보시면 압니다.</p>
<p>하지만~ 이 기능들을 사용하기 위해선 몇가지 사항이 뒷받침되어야겠죠? 바로 그런 이미지 프로세싱을 실질적으로 해주는 라이브러리 혹은 툴이 서버상에 존재해햐 한다는 것입니다. PHP는 기본이구요.</p>
<p><img alt="" src="http://alogblog.com/mt32/mt-static/FCKeditor/emoticons/icon_exclaim.gif" />&nbsp;(mt home)/mt-static/FCKeditor/editor/plugins/ImageManager/<strong>config.inc.php</strong> 파일을 여시고 그외 여러 다양한 사항들을 설정할 수 있습니다. 이 파일은 간단하게 모든 코멘트는 제거한 버전이니까 설명을 보실려면 config.inc.php.org 파일을 보세요. 디폴트로는&nbsp;&quot;GD&quot;를 이용하게 되어 있습니다. 일단 이미지를 가공해보시고, 에러가 나면 그외 다른 것으로 바꿔서 시도해 보는 방식으로 접근하세요. GD와 달리 ImageMagick이나 NetPBM을 정한 경우 해당 방법의 프로그램이 위치한 폴더 위치를 따로 정해줘야 합니다. 이런 설명은 위 파일을 참조해서 해결해야 합니다.</p>
<p>예제로&nbsp;UserFiles/Image/watermark/ 폴더 밑에 alogblogWatermark라는 이름의 워터마크 파일 몇개를 넣어뒀습니다. 이것으로 미리 한번 맛을 보시고, 자신의 워터마크를 만들어보세요. 문서에는24 bit PNG로 만들라는데 제 경우엔 잘 안되서 32 bit PNG로 저장하니 되네요.</p>
<p><img alt="" src="http://alogblog.com/movabletype/plugins/images/exam-watermark.png" /></p>
<p>7.<br />엠티의 퀵포스트(QuickPost)를 자주 사용하십니까? EnjoyYourPosting 플러그인은 퀵포스트의 에디터에도 FCKeditor를 삽입해 주고 당연히 그 폭도 그에 맞게 넓혀 줍니다.</p>
<p><a href="http://alogblog.com/movabletype/plugins/images/exam-quickpost.png"><img height="431" alt="" src="http://alogblog.com/movabletype/plugins/images/exam-quickpost.png" width="550" /></a></p>
<p>혹시 Zempt, BlogJet, Zoundry Blog Writer 등과 같은 블로깅 툴을 사용하시나요? 이런 툴들이 좋은 툴임에는 틀림이 없지만, 이런 툴들은 다른 여타 블로그 툴에도 사용할 수 있게 만든 범용 툴이기 때문에, 엠티 시스템 자체를 완벽하게 지원하지는 절대(?) 못합니다. 가령 3.3에 추가된 태그 필드를 지원하는 툴은 아마 아직 없을 것이고, 앞으로도 다른 여타 툴들이 이 태그 필드를 기본으로 장착하기 전에는, 이 블로깅 툴들이 이를 지원할 가능성이 매우 낮습니다. 하지만 단하나! 퀵포스트는 당연히 이를 지원하겠죠? 물론 퀵포스트 화면 자체의 엉성함이나 폭의 좁음 등등의 이유로 이를 독립적인 블로깅툴이라고 보기엔 지금껏 모자란게 사실입니다. 하지만, EnjoyYourPosting 플러그인이 장착해주는 FCKedior가 자연스레 더해진다면 조금 사정이 달라지지 않을까요? 일단 엠티 사용자로서 엠티의 모든 필드를 다 지원해준다는 장점하나만은 분명 존재하고, 위지윅 에디터까지 달리니 부러울게 있습니까? <img alt="" src="http://alogblog.com/mt32/mt-static/FCKeditor/emoticons/icon_wink.gif" /></p>
<h4>Notes</h4>
<ul>
    <li>이전 버전에서도 그랬지만, 이 플러그인 관련해서 가장 많은 질문은 다름아닌 FCKeditor와 관련된 것들입니다. 특히 이미지가 업로드되지 않는다거나 에디터 자체가 브라우저에 뜨지 않는 등의 이유인데요, 많은 경우 제 플러그인 자체와 거의 무관하고 FCKeditor의 문제인 경우입니다. 아시다시피 FCKeditor 자체가 워낙 복잡한 자바스크립트로 이뤄진 프로그램이라 생각지 못한 많은 팩터들로 장애를 겪기 쉽습니다. 물론 조금 재수가 없는 케이스이기는 합니다. 이 FCKeditor에 관련된 질문은 <a href="http://sourceforge.net/forum/?group_id=75348">FCKeditor 포럼&nbsp;</a>을 먼저 이용해 보시기 바랍니다.&nbsp;(혹은&nbsp;<a href="http://alogblog.com/movabletype/plugins/full_featured_fckeditor_on_movable_type/#comments">이 플러그인의 이전 엔트리의 코멘트</a>를 한번 보셔도 될겁니다.) </li>
    <li>ImageManager에 대한 것은 <a href="http://www.saulmade.nl/FCKeditor/FCKPlugins.php">ImageManger</a>&nbsp;페이지를 참조하세요.&nbsp; </li>
</ul>
<h4>License</h4>
Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>.<br />FCKeditor(Version&nbsp;2.3.1)&nbsp;follows <a href="http://www.fckeditor.net/license/default.html">its own copyright</a>.&nbsp;<br />
<h4>Version History</h4>
<ul>
    <li>3.3.02: bug fixed.(Author's preferred language is not defined in logging step, so it printed error log)</li>
    <li>3.3.01 : for MT 3.31 and&nbsp;other features added. Renamed to &quot;EnjoyYourPosting&quot; </li>
    <li>3.2.05: FCKeditor's FullWindow and Tagging plugin added. </li>
    <li>3.2.04: FCKeditor 2.1.1 newly added. / Error &quot;Can't call method &quot;preferred_language&quot;...&quot; fixed, thanks <a href="http://dusl.x-y.net/">dusl</a> for reporting it. </li>
    <li>3.2.03: Chinese CSS version added. </li>
    <li>3.2.02: Korean/Japanese CSS version added. </li>
    <li>3.2.01: for MT 3.2 </li>
    <li>1.0 : Initial but not released, for MT3.17 </li>
</ul>]]>
    </content>
</entry>
<entry>
    <title>MT 3.3용 트랙백 한글 인코딩 자동변환 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/mt_33용_트랙백_한글_인코딩_자동변환_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=78" title="MT 3.3용 트랙백 한글 인코딩 자동변환 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.78</id>
    
    <published>2006-08-02T09:19:11Z</published>
    <updated>2006-08-09T08:23:07Z</updated>
    
    <summary>MT 3.3에서는 받는 트랙백의 인코딩은 자동으로 변환하게 바뀌었습니다. 고로 이 플러그인은 이제 보낼 때, 미리 기억시킨 블로그 패턴에 따라 자동으로 EUC-KR/UTF-8을 인지해서 트랙백을 변화해 보내는 역할만 하게 됩니다....</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        MT 3.3에서는 받는 트랙백의 인코딩은 자동으로 변환하게 바뀌었습니다. 고로 이 플러그인은 이제 보낼 때, 미리 기억시킨 블로그 패턴에 따라 자동으로 EUC-KR/UTF-8을 인지해서 트랙백을 변화해 보내는 역할만 하게 됩니다.
        <![CDATA[<h4>Installation</h4>
<p>이 <a href="/downloads/dn.cgi?koreanTrackback-3.3.01.tar.gz">압축파일</a>을 받은 후, (mt 홈) 밑에서 $ tar xvfz koreanTrackback-3.3.01.tar.gz 식의 명령으로 풀면 됩니다.</p>
<p>압축파일을 서버상에서 바로 받는 방법도 아시죠? PC상으로 받은 후 다시 FTP로 서버에 올리는게 번거로우니까, 터미널을 이용하실 수 있는 분들은 그냥 $ <strong>wget</strong> http : //파일주소 식으로 직접 서버상에서 받으면 됩니다.</p>
<p>Explanation</p>
<p>자세한 설명은 <a href="http://alogblog.com/movabletype/korean_plugins/보내고_받는_트랙백_한글_인코딩_변환_플러그인/">예전 엔트리를</a> 참조하시고, 이 버전의 문제점은 이 엔트리에 코멘트해주세요.</p>]]>
    </content>
</entry>
<entry>
    <title>MT 3.3용 한글 시간 적용 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/mt_33용_한글_시간_적용_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=77" title="MT 3.3용 한글 시간 적용 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.77</id>
    
    <published>2006-08-02T09:11:43Z</published>
    <updated>2006-08-02T09:11:41Z</updated>
    
    <summary>이 플러그인은 한국어 실정에 맞는 시간 표시를 지원해줍니다. 더 자세한 내용은 이전 엔트리를 참조하실 수 있습니다....</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p>이 플러그인은 한국어 실정에 맞는 시간 표시를 지원해줍니다. </p>
<p>더 자세한 내용은 <a href="http://alogblog.com/movabletype/korean_plugins/한국어_시간_표시_플러그인/">이전 엔트리</a>를 참조하실 수 있습니다.</p>]]>
        <![CDATA[<h4>Installation</h4>
<p>이 <a href="/downloads/dn.cgi?koreanTime-3.3.01.tar.gz">압축파일</a>을 받은 후, (mt 홈) 밑에서 $ tar xvfz koreanTime-3.3.01.tar.gz 식의 명령으로 풀면 됩니다.</p>
<h4>Explanation</h4>
<p>시간을 AM/PM 대신에 좀더 세분한 시간으로 표시하는 기능도 있지만, 이 기능을 사용하지 않더라도, 제대로 연/월/일 표시가 되게 하려면 이 플러그인을 설치해야 할겁니다.</p>]]>
    </content>
</entry>
<entry>
    <title>MT 3.3용 한글 필터 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/mt_33용_한글_필터_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=76" title="MT 3.3용 한글 필터 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.76</id>
    
    <published>2006-08-02T09:04:35Z</published>
    <updated>2006-08-10T02:48:58Z</updated>
    
    <summary><![CDATA[이 플러그인은&nbsp;문자열을 자르거나 하는 엠티 내부의 루틴이 한글에도 잘 적용되게 해주는 플러그인입니다. 추가로 trim_from이라는 전역 필터 속성을 넣었습니다. 예를 들어, 받은 트랙백의 요약문의 일정 크기를 잘라서 목록에 나타낼때에 필터가 작동하는데, 그것이 한글에서도 무리없이 작동하게 도와주는 것입니다. 혹 이전 엔트리를 참조하실...]]></summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p>이 플러그인은&nbsp;문자열을 자르거나 하는 엠티 내부의 루틴이 한글에도 잘 적용되게 해주는 플러그인입니다. 추가로 trim_from이라는 전역 필터 속성을 넣었습니다.</p>
<p>예를 들어, 받은 트랙백의 요약문의 일정 크기를 잘라서 목록에 나타낼때에 필터가 작동하는데, 그것이 한글에서도 무리없이 작동하게 도와주는 것입니다.</p>
<p>혹 <a href="http://alogblog.com/movabletype/korean_plugins/한글처리_전역필터_dirify_trim_to_trim_from_플러그인/">이전 엔트리</a>를 참조하실 수 있습니다.</p>]]>
        <![CDATA[<h4>Installation</h4>
<p>이 <a href="http://alogblog.com/downloads/dn.cgi?koreanFilters-3.3.01.tar.gz">압축파일</a>을 받은 후, (mt 홈) 밑에서 $ tar xvfz koreanFilters-3.3.01.tar.gz 식의 명령으로 풉니다.</p>
<h4>Explanation</h4>
<p>(mt 홈)/lib/MT/I18N.pm 파일을 열고&nbsp;아래 줄을 찾으세요:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my %Supported_Languages = map {$_ =&gt; 1} ( qw( en_us ja ) );</p>
<p>그런 후 아래와 같이 ko를 더 해 주십시요</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my %Supported_Languages = map {$_ =&gt; 1} ( qw( en_us ja <strong>ko</strong>) );</p>
<p>지금의 엠티는 I18N, L10N에 일본을 위주로 하고 있습니다. 어쩜니까?<br />물론 제가 수정된 I18M.pm 파일을 배포할 수 있겠지만... 걍 좀 귀찮더라도 직접 추가해주세요.</p>]]>
    </content>
</entry>
<entry>
    <title>Mt 3.3용 EUC-KR과 UTF-8사이의 한글 인코딩 변환 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/mt_33용_euckr과_utf8사이의_한글_인코딩_변환_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=75" title="Mt 3.3용 EUC-KR과 UTF-8사이의 한글 인코딩 변환 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.75</id>
    
    <published>2006-08-02T08:25:05Z</published>
    <updated>2006-08-02T08:25:09Z</updated>
    
    <summary><![CDATA[한글 인코딩을 EUC-KR과 UTF-8 사이에서 알아서 변경해주는 플러그인입니다. UTF-8 블로그 사용자가 EUC-kR로 된 RSS/ATOM 피드를 제공하고자 할 때 유용합니다.&nbsp; Installation 이 압축파일을 받은 후, (mt 홈) 밑에서 $ tar xvfz KoreanEncoder-3.3.01.tar.gz 식의 명령으로 푸세요. 사용법은 예전 엔트리 참조하십시요....]]></summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p>한글 인코딩을 EUC-KR과 UTF-8 사이에서 알아서 변경해주는 플러그인입니다. UTF-8 블로그 사용자가 EUC-kR로 된 RSS/ATOM 피드를 제공하고자 할 때 유용합니다.&nbsp;</p>
<h4>Installation</h4>
<p>이 <a href="/downloads/dn.cgi?KoreanEncoder-3.3.01.tar.gz">압축파일</a>을 받은 후, (mt 홈) 밑에서 $ tar xvfz KoreanEncoder-3.3.01.tar.gz 식의 명령으로 푸세요.</p>
<p>사용법은 <a href="http://alogblog.com/movabletype/korean_plugins/utf_8과_euc_kr간의_문자열_인코딩_변환_플러그인/">예전 엔트리</a> 참조하십시요.</p>]]>
        
    </content>
</entry>
<entry>
    <title>MT 3.3용 한글 언어팩</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/mt_33용_한글_언어팩/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=74" title="MT 3.3용 한글 언어팩" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.74</id>
    
    <published>2006-08-02T08:15:20Z</published>
    <updated>2006-08-03T06:21:28Z</updated>
    
    <summary>MT 3.3 버전이 나옴에 따라 이에 맞춰 기존의 한글 관련 필수(?) 플러그인을 업데이트했습니다. 3.3 버전에서는 Internationalization(I18N)과 Localization(L10N)이 한층 강화되었습니다. 기왕에 업데이트 하는 김에 좀더 탄탄하게 손 볼 수 있는 것은 손 본 것 같은데, 어떨지 모르겠습니다. 국내에 존재하는 한줌(?) 엠티...</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p>MT 3.3 버전이 나옴에 따라 이에 맞춰 기존의 한글 관련 필수(?) 플러그인을 업데이트했습니다.</p>
<p>3.3 버전에서는 Internationalization(I18N)과 Localization(L10N)이 한층 강화되었습니다. 기왕에 업데이트 하는 김에 좀더 탄탄하게 손 볼 수 있는 것은 손 본 것 같은데, 어떨지 모르겠습니다.</p>
<p>국내에 존재하는 한줌(?) 엠티 유저들은 이미 잘 아시겠지만, 엠티라는 시스템은 단지 블로깅 툴 이상의 역할을 할 수 있는 Six Apart사가 말하는 바와 같이, 플랫폼적인 성향이 매우 강합니다. 자기가 꾸미기에 따라 어였한 일반 사이트 설계툴로도 손색이 없을 정도라고 봅니다.</p>
<p>초기 MT 2.66 이후 많은(?) 분들이 WordPress로 전향하셨지만, 그분들 상당수가 MT의 다양한 기능에 대한 이해가 충분치 않은 가운데 많은 오해를 앉고 전향(ㅋ)하신듯 보입니다.(아빠 팬티 줄여놨다~ 어서 돌아와~)&nbsp;그런 초기 MT의 기능에 대한 오해 여부에 대해 제가 아는 선에서 충분히 반박(?)하고 설득할수 있다 생각하지만, 이 글에서 펼치기엔 좀 어색한 듯 싶구요. 어쨋거나 엠티를 잘 쓰시는 분들은 이 독특한 시스템의 매력을 충분히 향유하시리라 믿습니다.</p>
<p>조금 과장해서 말하자면, 3.3 이후로 엠티에서의 한글화 문제는 지극히 특별한(즉 다른 시스템이라도 OS, 브라우저 등에서의 제한에 의해 가지는 문제들) 경우를 제외하곤 거의 없다고 봐도 될 정도로 내부 틀이 자리를 잡아가고 있습니다.</p>
<p>무버블타입에 관한 책을 준비하고 있는 와중에, 느닷없이(?) 3.3이 나오는 바람에, 한글화니 플러그인 업데이트니 정말 * 빠지게 설쳐댔는데요, 이제 대충 마무리가 된듯 싶긴한데, 풀로 테스트해보지는 못했으니 이점에 대해선 양해바랍니다.</p>
<p>참고로 한글화와 관련없는 일반 유틸리티성 플러그인도 업데이트를 했는데, 당분간 한글 설명 엔트리 쓸 여력은 없을 것 같습니다. 업데이트니까 예전꺼랑 대부분 비슷할테니 영어 엔트리와 예전 한글 엔트리를 잘 참조하셔서 걍 쓰시는 분은 쓰십시요.</p>]]>
        <![CDATA[<h4>Installation</h4>
<p>이 <a href="/downloads/dn.cgi?KoreanLanguage-3.3.01.tar.gz">압축파일</a>을 받아서 (mt 홈) 폴더 밑에서 $ tar xvfz KoreanLanguage-3.3.01.tar.gz 식의 명령으로 풀면 됩니다.</p>
<h4>Explanation</h4>
<p>(mt 홈)/mt-config.cgi 파일에 <strong>DefaultLanguage ko</strong> 한 줄을 추가하세요.</p>
<p>이 한글팩은 디폴트 템플릿의 이름까지 다 바꿉니다. 즉 Individual Entry Archive 템플릿은 &quot;개별 엔트리 아카이브(정확히 기억나지 않지만요)&quot; 식으로 하여튼 싸그리 다 바꿉니다. 만약 기존의 영어 템플릿 명에 익숙해서 템플릿 명은 그대로 두고 싶다면, lib/MT/L10N/ko.pm 파일을 여시고 해당 부분을 찾아서 삭제하세요. 저장은 항상 UTF-8 인코딩으로 하셔야 합니다.</p>
<p>만약 처음에 완전히 새로 인스톨 하는 경우에는 미리 위 한줄 삽입을 한 후, 설치/업데이트를 하면 템플릿 명도 한글로 생성됩니다만, 이미 영문으로 인스톨 한후에 이걸 깔면, 깔 당시에 존재하는 블로그의 템플릿 명은 그대로 영어명이구요, 이후 새로 생성하는 블로그에서만 한글이 적용됩니다. 이는 엠티 내부 방식때문에 생기는 결과입니다. 그냥 그렇구나 정도만 아시면 되겠죠.</p>
<p>그외 달리 설명할 것은 없습니다. 기왕 하는 김에, MT 3.31에 추가된 필수 플러그인에 대한 번역까지 했습니다.</p>
<p>확실한 오역은 코멘트 주십시요. 가령 &quot;블로그&quot;를 &quot;불로그&quot;식으로 오타가 눈에 띄면 귀찮다고 모른척 마시고 코멘트 주시면 감사하겠습니다.</p>
<p>&nbsp;</p>
<p><img alt="" src="/mt32/mt-static/FCKeditor/emoticons/lightbulb.gif" />&nbsp;별 의미없지만, 혹시나 다른 툴 사용자들을 유혹하기 위한 스크린샷 첨부합니다. ㅎㅎㅎㅎㅎ 아래 그림은 제 다른 플러그인 <a href="http://alogblog.com/movabletype/plugins/enjoy_your_posting/">EnjoyYourPosting</a>(아래처럼 디폴트 MT 인터페이스를 다른 것으로 바꿔주고, 또 FCKeditor라는 좋은 위지윅 에디터를 기본 내장하게 해주는 훌륭한<img alt="" src="/mt32/mt-static/FCKeditor/emoticons/embaressed_smile.gif" /> 플러그인입니다)이 적용된 화면입니다.</p>
<p><a href="/movabletype/plugins/images/KoreanLanguage-3.3.01.png"><img height="589" alt="" src="/movabletype/plugins/images/KoreanLanguage-3.3.01.png" width="550" /></a></p>
<p>&nbsp;</p>
<h4>Change Log</h4>
<ul>
    <li>중간에 몇개 '____' 로 처리된 부분을 수정했습니다.</li>
</ul>
<p>&nbsp;</p>]]>
    </content>
</entry>
<entry>
    <title>무버블타입용 한국어 번역판</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/무버블타입용_한국어_번역판/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=65" title="무버블타입용 한국어 번역판" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.65</id>
    
    <published>2006-05-22T15:10:20Z</published>
    <updated>2006-05-28T05:05:43Z</updated>
    
    <summary>무버블타입 버전 3.2 이상에서 한국어로 모든 MT 메뉴와 메시지 등을 표시하게 해줍니다. 기존에 MT에 익숙한 사용자의 경우 굳이 한국어로 변경하지 않아도 전혀 불편하지 않지만, 초보자들의 경우엔 낯선 시스템에 적응하는데 도움이 되지 않을까 해서 만들었습니다....</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        무버블타입 버전 3.2 이상에서 한국어로 모든 MT 메뉴와 메시지 등을 표시하게 해줍니다. 기존에 MT에 익숙한 사용자의 경우 굳이 한국어로 변경하지 않아도 전혀 불편하지 않지만, 초보자들의 경우엔 낯선 시스템에 적응하는데 도움이 되지 않을까 해서 만들었습니다.
        <![CDATA[<h4>Requirement</h4>
<ul>
    <li>Movable Type 3.2 이상 </li>
    <li>EUC-KR을 사용하는 블로그는 약간의 제한 있음. </li>
</ul>
<h4>Installation</h4>
<p><a href="/downloads/dn.cgi?ko.pm.zip">압축파일</a>을 받아 풀면 ko.pm 파일이 하나 나옵니다. 이놈을 (mt home)/extlib/MT/L10N/ 폴더 밑으로 옮기면 됩니다.</p>
<h4>Configuration</h4>
<p>설정하고 자시고 할 것도 없습니다. 다만 Note 부분까지 끝까지 읽고 이해하신 후 사용하세요.</p>
<ul>
    <li>(mt home)/mt-config.cgi를 열고 <strong>DefaultLanguage</strong> en_US 부분을 en_US에서 <strong>ko</strong>로 바꿉니다. </li>
    <li>MT의 시스템 메뉴(System Overview) -&gt; 저자(Authors)에서 해당 저자의&nbsp;&quot;표시 언어&quot;를 &quot;<strong>한국어</strong>&quot;로 변경해 줍니다(이 한국어판 파일을 설치한 후에도, 당근 여기서 &quot;영어&quot;로 설정해두면 언제든지 영어로 된 MT 메뉴를 볼 수 있습니다). </li>
    <li>이 부분은 옵션입니다. MT의 설정(Edit Weblog Config)메뉴의 일반(General) 메뉴에서&nbsp;&quot;날짜 표시 언어:&quot;를 &quot;한국어&quot;로 변경해도 좋습니다.&nbsp; 제 KoreanTime 플러그인을 설치해야 날짜 표시 언어로 &quot;한국어&quot; 가 나타납니다. KoreanTime 플러그인을 설치하지 않고 여기서 &quot;한국어&quot;로 설정하지 않아도, 당연히 한국어로 날짜를 얼마든지 표시할 수 있습니다. 템플릿상에서 조정하면 되죠. 귀찮은 분들은 걍 통과. </li>
</ul>
<p>이렇게&nbsp;하면 MT의 모든 메뉴와 메시지가 한국어로 표시되어 나옵니다.</p>
<p><img src="/movabletype/plugins/images/korean-pm.png" alt="" /><br />위 스크린샷은 alogblogMTInterface라는 MT의 기본 인터페이시를 바꿔주는 제 플러그인을 적용한 메뉴 시스템 상에서 나타난 모습입니다. 기본 MT 인터페이스에서는 한글 폰트의 크기가 안맞아서 좀 못생기게 나옵니다.</p>
<h4>Notes</h4>
<ul>
    <li>
    <p>이미 기존에 MT를&nbsp;설치해 사용하고 있는 경우와 새로 MT를 설치하는 경우 MT의 디폴트 템플릿 이름 변경에서 약간 차이가 있습니다.<br />새로 MT를 까시는 경우에는 먼저 mt-config.cgi의 &quot;ko&quot; 설정과 ko.pm 파일을 extlib/MT/L10N/ 폴더에 옮긴 후, MT 설치를 합니다. 그러면 모든 &quot;템플릿&nbsp;이름&quot;이 한국어화 됩니다.</p>
    <p>반면 기존 사용자의&nbsp;템플릿은 여전히 영어명(예, Main Index, Atom Feed 등)으로 나타납니다. 향후 새로운 블로그를 생성하면 그 블로그의 템플릿은 한국어명으로 생성됩니다. 테스트 삼아 새로운 블로그를 하나 생성한 후, 확인할 수 있습니다.(만약 템플릿명은 여전히 익숙한 영어명으로 계속 사용하길 원하시면, ko.pm 파일을 열고 해당 번역 부분을 찾아서 삭제하면 됩니다.)</p>
    </li>
    <li>
    <p>EUC-KR 인코딩을 사용하는 MT 시스템의 경우엔 약간의 문제가 있습니다. 첫째는 새로 MT 설치시 로그 메시지가 깨져 나타나는 것과, MT 템플릿명 중에 시스템 템플릿(예, Comment Preview Template)이름만 유독 깨져 나타나는 것과,&nbsp;리빌딩할 때 뜨는 팝업창에서 한글이 조금 깨진다는 것입니다.&nbsp;이중 실제 사용에서&nbsp;문제되는 부분은 시스템 템플릿 명인데, 따라서 <strong>EUC-KR 사용자</strong>는 ko.pm 파일을 열고 해당 부분(대문자 EUC-KR로 찾으면 설명있음)을 삭제해서 시스템 템플릿 명은 영어로 표시해야 합니다. MT 3.2 베타 테스트 단계 때 이 부분에 대한 버그 리포팅을 했었는데 완전 해결되진 않았네요. 처음 MT 사용자는 거의 필수로&nbsp;UTF-8을 사용하는게 좋습니다.&nbsp;기존의 EUC-KR 사용자도 시간날때 UTF-8로의 전환을 심각히 고려해 보는 것이 향후 여러 면에서 좋을 것이라 봅니다.</p>
    </li>
    <li>
    <p>번역이 당연 완벽하지 않을 것입니다. 뜬금없는 번역이라거나 메시지가 영어로 나타나는 경우(각종 플러그인 설명은 당연 영어로만 나타납니다)&nbsp;등엔&nbsp;알려주십시요. 참고하실건, 하나의 영어 메시지/단어가 다른 장면에서 다른 의미 혹은 명사/형용사적으로 달리 사용된 경우가 많습니다. 이런 영어 메시지는 한 부분에서 한국어로 번역해놓으면 다른 장면에서는 조금 어색한 뜻으로 나타나는 경우가 됩니다. 이런건 감안하시고 사용하시기 바랍니다.</p>
    </li>
    <li>
    <p><img src="/mt32/mt-static/FCKeditor/emoticons/cry_smile.gif" alt="" />&nbsp;기본 MT의 메뉴 디자인에 적용된 CSS 폰트 크기는 당연 &quot;영어&quot;에 맞춰져 디자인된 겁니다. 즉 비교적 크기가 작다는 것입니다. 이 한국어판을 적용하고 보면, 글꼴이 이쁘지(?)않게 나타납니다. 물론 사용에 크게 지장이 있는 것은 아니지만, 안이쁜건 안이쁜거죠. 제가 따로 만든 플러그인 alogblogMTInterface는 한국어(영어/일본어/중국어까지 맞춘겁니다)&nbsp;메뉴에 적용된 CSS로 따로 디자인했습니다. 즉 봐줄만 하다는 겁니다. alogblogMTInterface에는 두가지 버전이 있는데, FCKeditor라는 위지윅 에디터를 내장한 버전과, 그냥 인터페이스만 바꿔주는 버전입니다. 한글 글꼴 모양이 그리 탐탁치 않다면 한번 설치를 고려해보십시요. 다만 그만큼 더 귀찮아지죠. 초심자는 걍 쓰세요.<br /><br />디폴트 MT 메뉴 CSS에서 폰트크기만 바꿔서&nbsp;쓰시는 분은, 다른 분을 위해 그 폰트 변경 부분을 알려주시면 감사하겠습니다.</p>
    </li>
    <li>
    <p><img alt="" src="/mt32/mt-static/FCKeditor/emoticons/lightbulb.gif" />&nbsp;ko.pm 파일은 UTF-8 인코딩으로(EUC-KR 사용자도)&nbsp;저장해야 합니다. 혹시 삭제/수정/추가 등을 하실 경우 꼭 UTF-8로 저장하세요. UTF-8로 저장하는 에디터는 아래 webSSearchy에서 검색결과를 참고 하세요.</p>
    </li>
</ul>
<h4>License</h4>
Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>.
<h4>Version History</h4>
<p>번역에 명백한 오류나 추가 등이 발생할 때마다 수시로 업합니다.</p>]]>
    </content>
</entry>
<entry>
    <title>SomeMTPager, 방명록(Guestbook) 만들기</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/somemtpager_방명록guestbook_만들기/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=64" title="SomeMTPager, 방명록(Guestbook) 만들기" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.64</id>
    
    <published>2006-05-10T16:15:06Z</published>
    <updated>2006-05-10T16:15:42Z</updated>
    
    <summary>Go to English entry 이것은 CategoryPager 플러그인의 업데이트 버전입니다. CategoryPager는 카테고리 아카이브에서 엔트리 목록을 페이징할 수 있도록 도와주는 것인데, 이 SomeMTPager는 이 기능 외에, 엔트리의 코멘트를 페이징 할수 있게 해줍니다. 다만 이 코멘트 페이징은 MT의 CGI 기능을 이용한 전용 방명록...</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="/movabletype/plugins/somemtpager_a_category_and_comment_pager_using_mts_cgi_feature/">Go to English entry</a></p>
<p>이것은 CategoryPager 플러그인의 업데이트 버전입니다. CategoryPager는 카테고리 아카이브에서 엔트리 목록을 페이징할 수 있도록 도와주는 것인데, 이 SomeMTPager는 이 기능 외에, 엔트리의 코멘트를 페이징 할수 있게 해줍니다. 다만 이 코멘트 페이징은 MT의 CGI 기능을 이용한 전용 방명록 생성을 염두에 두고 만들어 진것이라, 일반 정적 엔트리 생성에서는 그 사용을 보장하지 못합니다.</p>
<p>이 플로그인의 코멘트 페이징을 이용해서 만드는 방명록은, 새로운 블로그 생성/네 개(Site Javascript, Stylesheet, Individual, Comment Listing)의 템플릿만으로 아무런 정적인 파일 생성없이 이루어 집니다.</p>
<p><img src="/mt32/mt-static/FCKeditor/emoticons/heart.gif" alt="" />이&nbsp;<a href="/mt32/mt-view.cgi/4/entry/62/guestbook/">방명록</a> 은 MT의 CGI 기능과 이 플러그인을 이용해 만든 것입니다. MT의 StyleCatcher 플러그인을 이용해 다양한 스킨을 간단히 이용하면 더욱 간단히 방명록을 만들 수 있습니다. 물론 자신만의 디자인을 적용하려면 그보단 조금더 시간이 들겠지만, 방명록 성격상 딱 한페이지의 CSS만 디자인하면 되므로 상대적으로 쉽다고 할 수 있을 것입니다.</p>
<p>그럼 문제는 과연 방명록을 MT의 CGI만을 이용해 운영할 경우 방명록 글이 많아 질수록 성능에 문제가 없을까 하는 점입니다. 제 방명록은 mySQL이 아닌 파일 DB를 사용하므로 더 늦을 겁니다. 즉 PHP/mySQL 디비를 사용한 전용 방명록(혹은 게시판)&nbsp;툴을 사용해 생성한 것보단 분명 빠르진 않을 것입니다. 또 많은 분들이 기존의 다양한 쉬운 게시판 프로그램을 적용하기도 합니다. 과연 방명록을 MT의 CGI를 이용해 만들 실익이 있기는 있을까요?</p>
<p>제가 생각하는 궁색한 이유는 이렇습니다. 일단 방명록은 그 성격상 일반 BBS 게시판과 다름니다. 즉 방명록 이용자 즉 방문자들이 거의 &quot;검색&quot;을 할 가능성이 없는 체제입니다. 검색은 가장 동적인 성능이 많이 요구되는 한 기능입니다. 또 방명록 글 페이지 상의 이동 즉 네이게이션도 일반 방문자가 할 가능성도 낮습니다. 주로 방명록 주인이 어쩌다 이용하는 기능입니다. 결론적으로 방명록은 일반 게시판에 비해 동적인 기능이 낮고 대신 다른 기능이 좀더 요구됩니다. 그것은 바로 글을 남긴 후 빠른 응답, 그리고 쉬운(혹은 익숙한) 디자인 체제, 갈수록 문제화되는 코멘트 스팸, 이 경우엔 방명글 스팸을 퇴치할 나름의 수단이 제공되느냐..하는 점에 핵심을 두고 봐야 한다는 것입니다. 그런 점에서 이 플러그인을 이용한 MT 방명록은 MT의 디폴트 스팸 퇴치 기능외에 다양한 안티스팸 플러그인을 사용할 수 있으며, 디자인이나 관리 체계도 MT내에서 하나로 할 수 있다는 점이 그 장점이라고 볼 수 있습니다. (방명록에 글이 많아져서 속도에 지장을 느낀다 싶을 경우의 대책은 아래 Note를 참조하세요)</p>
<p>쉽게 구해서 쉽게 적용할 수 있는 게시판 응용 방명록도 하나의 대안이 되겠지만, MT 내에서&nbsp;응용해서 쉽게 나만의 디자인(방명록 디자인이 거기서 거기겠지만)으로&nbsp;생성할 수 있는 방명록 체제도 나름 편리하지 않을까 생각합니다.</p>]]>
        <![CDATA[<h4>Requirement</h4>
<ul>
    <li>Movable Type 3.2 </li>
</ul>
<h4>Installation</h4>
<p><a href="/downloads/dn.cgi?SomeMTPager-3.2.02.tar.gz">압축 파일</a>을 받아 (mt home) 밑에서 $ tar xvfz SomeMTPager-3.2.02.tar.gz 식의 명령으로 풀면 (mt home)/plugins/alogblog/ 폴더 밑에 SomeMTPager.pl 파일이 생성됩니다.</p>
<h4>방명록(Guestbook) 만드는 순서</h4>
<p>0.<br />(mt home)/mt-config.cgi 파일을 열고 &quot;<strong>SafeMode</strong>&quot; 을 &quot;0&quot;으로 설정합니다.</p>
<p>1.<br />방명록을 위한 새 블로그를 하나 생성한 후 다음과 같은 설정을 해줍니다.(블로그 ID를 기억합니다)</p>
<ul>
    <li>Index 템플릿 메뉴에서&nbsp;<strong>Site JavsScript,</strong>&nbsp;<strong>Stylesheet</strong> 템플릿을 제외한 다른 템플릿은 삭제합니다.</li>
    <li>Archive 템플릿 메뉴에서 &quot;Individual Entry Archive&quot;을 &quot;<strong>guestbook</strong>&quot; 으로 이름을 바꾸고, 나머지 아카이브(Category, Date-Based)&nbsp;템플릿은 모두 삭제합니다.</li>
    <li>&quot;Edit Weblog Configuration&quot; 메뉴의&nbsp;New Entry Defaults 탭메뉴에서 &quot;Accept Comments&quot;는 선택하고 &quot;Accept TrackBacks&quot;는 해제합니다. </li>
    <li>Feedback 탭메뉴에서 &quot;Accept TrackBacks&quot;를 해제하고, 나머지 Comments 상태에 관한 설정은 원하는 대로 정해줍니다.</li>
    <li>Publishing 탭메뉴에서 &quot;guestbook&quot; Individual Archive Mapping을 제외한 나머지 맵핑은 삭제합니다. 그리고 디폴트로 선택되어 있는&nbsp;&quot;Individual&quot; Archive Types은 해제합니다. 즉 결과적으로 guestbook 맵핑만 남겨둔 후, 그 조차 해제(unselect)해서 실제로는 아무런 아카이브도 만들지 않는 것입니다.</li>
</ul>
<p>2.<br />이제 새로 엔트리를 하나 작성합니다. 방명록의 윗부분에 나타날 메시지를 이 엔트리의 Entry Body에서 입력한 값을 이용하는 방식입니다. 방문자가 남기는 방명록 글은 결국 이 엔트리의 Comment인 셈입니다.(이 엔트리의 entry ID도 기억합니다)</p>
<p>3.<br />System 템플릿에 있는 &quot;<strong>Comment Listing Template</strong>&quot; 을 열고 그 내용은 모두 삭제한 후 아래 한 줄을 입력하고 저장합니다.</p>
<div class="Code">&lt;meta http-equiv=&quot;refresh&quot; content=&quot;0;url=&lt;$MTCGIPath$&gt;mt-view.cgi/&lt;$MTBlogID$&gt;/entry/&lt;$MTEntryID$&gt;/guestbook/&quot; /&gt;</div>
<p>&nbsp;4.<br />&quot;guestbook&quot; 아카이브 템플릿을 엽니다.<br />&lt;input type=&quot;hidden&quot; name=&quot;<strong>static</strong>&quot; value=&quot;1&quot; /&gt; 줄을 찾아&nbsp;&quot;1&quot; 을 &quot;0&quot;으로 바꿉니다.</p>
<div class="Code">&lt;MTComments lastn=&quot;[MTPageLastN=5]&quot; offset=&quot;[MTPageOffset]&quot; sort_order=&quot;descend&quot;&gt;<br />...<br />&nbsp; &lt;div class=&quot;guestbook-&lt;$MTCommentEvenOdd$&gt;&quot;&gt;...&lt;/div&gt;<br />...<br />&lt;/MTComments&gt;<br />&lt;/div&gt;<br />&lt;div id=&quot;msg-nav&quot;&gt;&lt;$MTSomeMTPager how_many_pagers=&quot;3&quot; $&gt;&lt;/div&gt;</div>
<p>&lt;MTComments&gt; 태그를 찾아 위처럼 속성을 추가합니다. <strong>[MTPageOffset]</strong> 는 필수입니다. <strong>[MTPageLastN=5]</strong> 는 한 페이지에 나타낼 방명글의 수(즉 Comment수)를 정하는 것입니다.</p>
<p>&lt;MTComments&gt; 태그 내에서는&nbsp;<strong>&lt;$MTCommentEvenOdd$&gt;</strong> 태그를 사용할 수 있습니다. 이 값은 해당 코멘트의 짝홀수에 따라&nbsp;&quot;odd&quot;, &quot;even&quot;라는 문자열을 반환해 줍니다. 따라서 위처럼 CSS의 class 속성에 적절히 이용함으로써 짝/홀수 번에 따라 다른 디자인을 적용할 수 있습니다.</p>
<p><strong>&lt;$MTSomeMTPager$&gt;</strong> 태그는 페이지 수를 표시해 줍니다. 그 속성 <strong>how_many_pager=&quot;3&quot;</strong>을 사용한다면 그 결과는 &lt;div id=..&gt;1 | 2 | 3 ...10&lt;/div&gt;식으로 나타납니다.</p>
<p>5.<br />이제&nbsp;&quot;guestbook&quot; 템플릿의 다른 부분도 원하는 대로 디자인을 수정해 줍니다. 가령 방명록은 그 성질상 트랙백을 보내거나 받을 필요가 없으므로 트랙백 표시 부분을 아예 템플릿에서 제거합니다. 그리고 나머지 메타 태그 부분 등도 필요 없는 부분은 다 제거합니다. 왜냐면 이 방명록은 동적으로 이 템플릿을 해석해서 표시하는 방식이므로 가능하면 불필요한 태그를 제거하는 것입니다. 제 방명록의 HTML 소스를 열어서 참고 하십시요.</p>
<p>6.<br />&quot;<strong>Site Javascript</strong>&quot; 템플릿을 열고 static=&quot;1&quot;라는 부분을 찾아 &quot;0&quot;으로 바꿔 줍니다. 아마 세군데 정도 있을 겁니다.</p>
<p>마지막으로 기존의 다른 블로그 등에 지금 만든 방명록의 주소를 삽입해야 할 것입니다.<br />이 방명록의 URL은 &quot;your_domain/path_to_mt/mt-view.cgi/4/entry/62/guestbook/&quot; 식이 됩니다. 여기서 &quot;4&quot;는 방명록을 위해 만든 블로그의 ID고, &quot;62&quot; 부분은 새로 하나 작성한 엔트리의 ID입니다. 그리고 반드시 URL은 슬래시(/)로 끝나야 합니다. ( 방명록 하나는 엔트리 하나라는 걸 이해한다면, 원하는 경우 복수개의 방명록을 만들 수 있음을 알 수 있습니다)</p>
<h4>Notes</h4>
<ul>
    <li>페이지 번호 목록(Pager)는&nbsp;&lt;li&gt; 태그를 이용해 표시해 줍니다. 따라서 이를 가로로 페이지 번호를 나타내기 위해 적절한 CSS 규칙을 정해줘야 합니다. 아래는 그 한 예입니다.<br /><strong>/*&nbsp; Example of pager CSS */</strong><br />#msg-nav { text-align: center; }<br />#msg-nav li { list-style:none; display:inline; }<br />#msg-nav li a { text-decoration: none; padding: 5px; }<br />#currentPage { color: red; }<br />#msg-nav li a:hover { border-top: 3px solid red; } </li>
    <li>(mt home)/plugins/alogblog/SomeMTPager.pl 파일에서 페이저의 몇몇 값을 개인화할 수 있습니다.</li>
    <li>만약 방명록에 방명글(Comment)이 꽤 많이 달려서 전체적으로 속도가 늦어 진다 싶으면 어떻게 하면 될까요? 그런 경우에는 인덱스 템플릿을 하나 만들고 기존 방명글을 하나 혹은 몇개의 분활된 정적 HTML 파일로 퍼블리싱해 준후, 그것의 링크를 &quot;guestbook&quot;템플릿에 삽입해준후, 그 Comment들은 모두 삭제해주는 식으로 DB를 비워주면 될것 입니다. </li>
</ul>
<h4>License</h4>
Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>.
<h4>Version History</h4>
<ul>
    <li>3.2.02 : Add comment paging feature. </li>
    <li>3.2.01 : Paging entries in category archive. </li>
</ul>]]>
    </content>
</entry>
<entry>
    <title>Movable Type의 CGI를 이용한 CategoryPager</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/movable_type의_cgi를_이용한_categorypager/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=60" title="Movable Type의 CGI를 이용한 CategoryPager" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.60</id>
    
    <published>2006-05-04T19:02:37Z</published>
    <updated>2006-05-07T12:33:47Z</updated>
    
    <summary>Go to English entry 이 플러그인은 무버블타입 블로그에서 PHP같은 형식으로 퍼블리싱하지 않고 HTML로 퍼블리싱하는 경우에도, 카테고리 아카이브에 페이지를 나눠 나타내게 할 수 있게 해 줍니다. 날짜 기반 아카이브의 경우 그 성질상 월별 정도의 개념으로 페이징이 나눠진다고 볼 수 있습니다. 따라서...</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="http://alogblog.com/movabletype/plugins/categorypager_using_mts_cgi_not_php/">Go to English entry</a></p>
<p>이 플러그인은 <a class="technorati" href="http://technorati.com/tag/무버블타입" rel="tag">무버블타입</a> 블로그에서 PHP같은 형식으로 퍼블리싱하지 않고 HTML로 퍼블리싱하는 경우에도, 카테고리 아카이브에 페이지를 나눠 나타내게 할 수 있게 해 줍니다. 날짜 기반 아카이브의 경우 그 성질상 월별 정도의 개념으로 페이징이 나눠진다고 볼 수 있습니다. 따라서 그 경우엔 굳이 페이지를 나눌 필요성이 없는 반면에, 카테고리 아카이브는 시간이 지남에 따라 누적적으로 엔트리가 쌓이게 되므로 어느 순간 적절한 크기로 목록을 나눠서 표시할 필요성이 생깁니다.</p>
<p>이런 일종의 게시판에서의 페이징같은 기능은 기본적으로 동적인 특성이 요구되므로 HTML같은 형식으로 퍼블리싱하는 경우 이를 구현하기 불가능합니다. 따라서 이 페이징 기능을 사용하기 위해 일부러(?) PHP 형식으로 퍼블리싱하게 되는 현상도 발생합니다. 물론 PHP로 퍼블리싱할 경우에 그만큼 유연해지는 것은 사실이나, 특별히 동적인 기능을 사용하지 않는 경우에는 MT의 시스템 특성과도 어울리게 정적인 HTML 파일로 퍼블리싱하는게 자연스럽다고 봅니다.</p>
<p>어쨋든 MT에서 이 카테고리 아카이브에 페이징을 적용하려면 기본적으로 <strong>PHP</strong> 등으로 <strong>퍼블리싱</strong>을 해야 합니다. 여기서 MT 시스템이 제공하는 비공식 CGI인 mt-view.cgi를 이용할 여지가 발생합니다. 즉 MT의 이 CGI도 PHP처럼 동적인 능력을 제공하기 때문에 이를 이용한다면 별도의 파일 형태로 퍼블리싱을 할 필요가 없어집니다.</p>
<p><img alt="" src="/mt32/mt-static/FCKeditor/emoticons/heart.gif" />&nbsp;카테고리 아카이브에 페이징이 적용된 모습은 <a href="http://alogblog.com/alog/cgi/print.cgi/1/category/Blog/">여기서</a> 볼 수 있습니다.(이것은 이 플러그인을 이용한 것은 아닙니다만 같은 원리입니다)</p>]]>
        <![CDATA[<h4>Requirement</h4>
<ul>
    <li>Movable Type 3.2 </li>
</ul>
<h4>Installation</h4>
<p><a href="/downloads/dn.cgi?CategoryPager-3.2.01.tar.gz">압축 파일을</a> 받아 (mt home) 폴더밑에서 $tar xvfz CategoryPager-3.2.01.tar.gz 등의 명령으로 풉니다.</p>
<h4>Configuration</h4>
<p>1.<br />(mt home)/mt-config.cgi 파일을 열어서 <strong>SafeMode</strong>에 0을 입력합니다. 디폴트로는 주석처리 되어 있습니다.</p>
<p>2.<br />MT의 Archive 템플릿 메뉴로 들어가서, 새 아카이브 템플릿을 생성합니다. 이름을 가령 &quot;Dynamic Category Pager&quot; 등으로 붙입니다. 그 내용은 기존에 사용하던 카테고리 아카이브 템플릿의 내용을 재사용해도 될 것입니다.</p>
<p>3.<br />그런 후, 그 템플릿 내용중에서 &lt;MTEntries&gt; 태그 부분을 아래처럼 수정해 줍니다.</p>
<div class="Code">&lt;MTEntries lastn=&quot;[MTPageLastN=10]&quot; offset=&quot;[MTPageOffset]&quot;&gt;<br />...<br />&lt;/MTEntries&gt;<br />...<br />&lt;div id=&quot;...&quot;&gt;&lt;$MTCategoryPager how_many_pagers=&quot;3&quot; $&gt;&lt;/div&gt;</div>
<p>offset 속성의 값은 항상 위와 같이 &quot;[MTPageOffset]&quot;이어야 합니다. lastn 속성의 값 중에서 &quot;10&quot;의 의미는, 한 페이지 내에 몇개의 엔트리를 표시할 것이냐를 정하는 것입니다.</p>
<p>&lt;$MTCategoryPager$&gt; 태그가 바로 실질적인 페이징 링크를 나타내주는 것입니다. 이 태그의 속성 how_many_pagers는 페이징 링크에 나타낼 연속된 페이지 링크의 갯수를 나타냅니다. 예를 들어 이 값이 3이면 아래처럼 링크가 표시될 겁니다.<br />&lt;div id=&quot;...&quot;&gt;1 | 2 | 3 | ... &raquo; 8&lt;/div&gt; OR<br />&lt;div id=&quot;...&quot;&gt;1 ... &laquo;&nbsp;5 | 6 | 7 &raquo; ... 12&lt;/div&gt;</p>
<p>4.<br />이제 MT의 &quot;Edit Weblog Configuration&quot; 메뉴에서 &quot;Publishing&quot; 탭으로 갑니다.</p>
<p>5.<br />여기서 &quot;Create New Archive Mapping&quot;을 눌러서 &quot;category&quot; 아카이브 타입에 조금전 만든 &quot;Dynamic Category Pager&quot; 템플릿을 연결 시킨후 &quot;Add&quot; 버튼을 눌러 줍니다.</p>
<p>6. Archive Mapping 섹션의 카테고리 부분에서 &quot;Dynamic Category Pager&quot;를 &quot;Preferred&quot;로 선택하고, Archive Types의 Category 부분의 선택을 해제합니다.<br /><img alt="" src="http://alogblog.com/movabletype/plugins/images/categoryPager.png" /></p>
<p>조금 전 적용은,&nbsp;내부적으로는 Dynamic Category Pager라는 이름의 템플릿이 카테고리 아카이브에 할당된 주 템플릿으로 설정함과 동시에, 카테고리 아카이브로의 퍼블리싱을 실제로 하진 않겠다는 의미를 나타냅니다. 결론적으로 MT는 어떠한 가시적인 카테고리 아카이브를 생성하지 않습니다.</p>
<p>7.<br />이제 Main Index 템플릿(일반적으로 메인 인덱스 페이지에서 카테고리 아카이브 링크를 삽입한다는 가정하에)을 열고 카테고리 아카이브를 나타내는 태그 부분을 적당히 수정해 줄 것입니다. 아래 내용은 MT 3.2의 디폴트 메인 인덱스 템플릿의 카테고리 아카이브 부분입니다.</p>
<div class="Code"><strike>&lt;MTIfArchiveTypeEnabled archive_type=&quot;Category&quot;&gt;</strike><br />&lt;div class=&quot;module-categories module&quot;&gt;<br />&nbsp;&nbsp; &lt;h2 class=&quot;module-header&quot;&gt;Categories&lt;/h2&gt;<br />&nbsp;&nbsp; &lt;div class=&quot;module-content&quot;&gt;<br />&nbsp;&nbsp; &lt;MTTopLevelCategories&gt;<br />&nbsp;&nbsp; &lt;MTSubCatIsFirst&gt;&lt;ul class=&quot;module-list&quot;&gt;&lt;/MTSubCatIsFirst&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MTIfNonZero tag=&quot;MTCategoryCount&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li class=&quot;module-list-item&quot;&gt;<br /><span class="yellow-pen">&lt;a href=&quot;mt/mt-view.cgi/&lt;MTBlogID&gt;/category/&lt;MTCategoryID&gt;/&quot;&gt;&lt;MTCategoryLabel&gt;&lt;/a&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MTElse&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li class=&quot;module-list-item&quot;&gt;&lt;MTCategoryLabel&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/MTElse&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/MTIfNonZero&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MTSubCatsRecurse&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt;<br />&nbsp;&nbsp; &lt;MTSubCatIsLast&gt;&lt;/ul&gt;&lt;/MTSubCatIsLast&gt;<br />&nbsp;&nbsp; &lt;/MTTopLevelCategories&gt;<br />&nbsp;&nbsp; &lt;/div&gt;<br />&lt;/div&gt;<br /><strike>&lt;/MTIfArchiveTypeEnabled&gt;</strike><br /></div>
<p>여기서 주의해야 할 점은, 카테고리 아카이브를 가시적으로 퍼블리싱하지 않기 때문에, 위처럼 디폴트로 박혀 있는 &lt;MTIfArchiveTypeEnabled archive_type=&quot;Category&quot;&gt; 부분은 &quot;거짓&quot;을 반환하므로 그 안의 태그는 나타나지 않는 다는 것입니다. 따라서 위처럼 그 컨테이너 태그는 삭제를 해줘야 합니다.</p>
<p>또하나 혼동해선 안되는 것은 우리는 카테고리 &quot;아카이브&quot;만 생성하지 않을 뿐, 카테고리 자체의 기능은 그와 별개로 사용할 수 있다는 점입니다. 이 말은 가령 엔트리에 카테고리를 부여하는 등의 행위는 얼마든지 할 수 있으며, 따라서 카테고리 관련한 태그는 위처럼 사용할 수 있다는 것입니다.</p>
<p>디폴트 탬플릿에서는 개별 카테고리 아카이브를 가리키는 링크 주소를 나타내기 위해 &lt;$MTCategoryArchiveLink$&gt; 같은 태그를 사용했지만, 이제는 이 태그를 사용할 수 없다는 것도 알 것입니다. 왜냐면 카테고리 아카이브를 MT가 생성하지 않으므로 당연 주소도 없습니다.</p>
<p>대신에 우리는 mt-view.cgi가 인식하는 동적인 카테고리 아카이브 주소를 수동적으로 입력해야 합니다. 위의 노란 부분처럼 mt-view.cgi 이하 경로를 사용하면 됩니다. 물론 정확한 mt-view.cgi 까지의 경로는 자신의 환경에 맞게 고쳐줘야 할 것입니다.</p>
<p><img alt="" src="http://alogblog.com/mt32/mt-static/FCKeditor/emoticons/icon_arrow.gif" />&nbsp;주의 : 동적인 카테고리 아카이브 주소의 끝은 반드시 슬래시 ('/')로 끝나야 합니다.</p>
<p>끝입니다.</p>
<h4>Notes</h4>
<ul>
    <li>현재 플러그인은 카테고리 아카이브에서&nbsp;&lt;MTEntries&gt;에만 적용됩니다. 즉 카테고리 아카이브에서 엔트리를 기준으로한 목록을 페이징한다는 것입니다. 물론 이것이 가장 기본이 되는 것은 사실입니다. 차후에는 카테고리 아카이브를 엔트리 기준 외에 가령 카테고리 트랙백을 페이징하는 것도 계획하고 있습니다.&nbsp; </li>
</ul>
<h4>License</h4>
<p>Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>. </p>
<h4>Version History</h4>
<ul>
    <li>3.2.01 : First release. </li>
</ul>]]>
    </content>
</entry>
<entry>
    <title>webSSearchy, 네이버, 구글, 야후 검색 웹서비스 이용 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/webssearchy_네이버_구글_야후_검색_웹서비스_이용_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=58" title="webSSearchy, 네이버, 구글, 야후 검색 웹서비스 이용 플러그인" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.58</id>
    
    <published>2006-04-27T16:52:54Z</published>
    <updated>2006-06-16T03:46:23Z</updated>
    
    <summary>Go to English entry webSSearchy는 블로거가 직접 선정한 검색 쿼리, AJAX 기법과 네이버, 구글, 야후 등 각종 검색 웹서비스를 이용해서, 해당 글을 접한 방문자가 그 글의 주제/기술 등과 관련해 검색을 해 좀더 알아보고자 할 때, 한번의 클릭으로 쉽게 결과를 알아보도록...</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="http://alogblog.com/movabletype/plugins/webssearchy_a_clickandget_web_service_consumer/">Go to English entry</a></p>
<p>webSSearchy는 블로거가 직접 선정한 검색 쿼리, <a class="wikipedia" href="http://en.wikipedia.org/wiki/ajax" rel="tag">AJAX</a> 기법과 네이버, 구글, 야후 등 각종 검색 <a class="technorati" href="http://technorati.com/tag/웹서비스" rel="tag">웹서비스</a>를 이용해서, 해당 글을 접한 방문자가 그 글의 주제/기술 등과 관련해 검색을 해 좀더 알아보고자 할 때, 한번의 클릭으로 쉽게 결과를 알아보도록 도와주는 무버블타입 블로그용 플러그인입니다. 현재는 야후, 구글, 네이버에 대한 웹서비스를 이용할 수 있으면, <a class="technorati" href="http://technorati.com/tag/무버블타입" rel="tag">무버블타입</a> 자체의 검색 CGI(mt-search.cgi)를 RSS 형태로 반환하게 변형해서 이 또한 이용할 수 있게 해주는 CGI까지 네개가 제공됩니다.</p>
<p>&nbsp;</p>
<p><img alt="" src="/mt32/mt-static/FCKeditor/emoticons/lightbulb.gif" />여기서 그 <a href="#webSSearchy-header">적용 모습</a>을 볼 수 있습니다.<br />* 이 글에 붙인&nbsp;webSSearchy 결과 링크의 일부는&nbsp;각 서비스의 다양한 타겟 결과를 보여주기 위해, 이 글의 주제와 상관없는 링크도 예시적으로 포함하고 있습니다.<br /><img alt="" src="http://alogblog.com/mt32/mt-static/FCKeditor/emoticons/icon_arrow.gif" /> <a href="http://alogblog.com/alog/archives/2006/04/28_web_2.0과_네이버_openapi/">Web 2.0과 네이버 OpenAPI</a>&nbsp;(이 플러그인을 만드는 동안 생각한 이런 저런 생각을 로깅한 글입니다.)</p>
<p>&nbsp;</p>
<p>실제 엔트리 작성시에 적용하는 모습은 소위 태그를 붙이는(<a class="technorati" href="http://technorati.com/tag/tagging" rel="tag">Tagging</a>) 것과 유사해 보입니다. 또 결과 모습도 비슷해 보입니다. 하지만 그 성질은 정 반대입니다. 태그는 기본적으로 블로거 자신을 위해서 붙입니다. 태그는 내부적으로는 간편한 카테고리의 성격을 가집니다. 즉 자신의 글에 대해 관리 목적상 즉석에서 분류를 하는 것입니다. 외부적으로는 태그 관련 메타 사이트에 관련된 주제로 자신의 글을 등록해서, 가능한 많은 블로거들의 방문을 유도하는 목적도 가집니다. 물론 이에 대해서&nbsp;&quot;태그 공간 생성에 이바지&quot;나 &quot;다른 블로거에 쉽게 글을 제공하는 것&quot;이라는 의미를 부여할 순 있지만, 그것은 목적이라기 보단 결과 측면의 의미가 강합니다.</p>
<p>반면 webSSearchy에 의한 검색 쿼리 링크 삽입은&nbsp;블로거 자신이 아닌, 오로지 해당 글의 방문자 편의를 위해 제공되는 것이라 할 것입니다.&nbsp;둘다 해당 글과 관련된 &quot;키워드&quot; 선정이라는 면이 공통되 보이지만, 그 &quot;키워드&quot;의 성격도&nbsp;적어도 이론적으로는 정 반대로 봅니다. 태그로 선정되는 키워드는 기본적으로 &quot;관리&quot;의 성격이 있기 때문에, 고정적인 기존의 &quot;카테고리&quot;보다는 유연하지만, 여전히 짧고 기억하기 좋고 많은 이들이 두루 사용할 가능성이 커야 한다는 묵시적 제한을 가지고 선정됩니다. 즉, 태그로 지정할 &quot;키워드&quot;가 복잡하고 한정어가 많이 붙을 수록, &quot;태그&quot;로서의 가치가 떨어진다고 할 수 있습니다. 블로그 엔트리 관리적인 측면에서도 너무 지엽적인 태그의 생성이요, 마찬가지로 외부적으로도 보통의 블로거들의 태그와 쉽게 결합되기 어렵게 되기 때문입니다.</p>
<p>하지만 이 검색 쿼리로서의 &quot;키워드&quot;는&nbsp;방문자가 이글의 주제/기술과 관련해 더 검색할 경우를 가정한 비교적 서술적이고 상세한 키워드의 조합이 될 가능성이 큽니다. 그런 의미에서 이는&nbsp;방문자의 이익을 위해 제공하는 일종의 &quot;간접 웹서비스&quot;라는 개념이 강합니다. 야후, 구글, 네이버 등의 웹서비스를 받아 소비하는 최종 소비자로 존재하는 것이 아니라,&nbsp;웹서비스 개념에 무관한 일반 블로그 방문자에게 글의 내용과 관련해 대신 웹서비스를 받아서 다시 제공하는 중간 웹서비스입니다.</p>
<p>webSSearchy에 의한 검색 결과의 제시는 어떤 면에서는 자신의 블로그로 어렵게(?) 찾아온 방문객을 다른 사이트로 쉬 보내는 결과를 줄 가능성이 큽니다. 그것은 방문자가 여분의 클릭을 통해 어떤 쿼리에 대한 결과를 보길 원하는 적극적인 행동을 취했기 때문에 더 그러합니다.&nbsp;방문객을 모아서 내 블로그의 구석 구섯으로 보내기 보다는, 다른 사이트로 보내는 역할을 결과적으로 하게 됩니다. 당장엔 적어도 블로그 주인의 입장에서는 꽤 불유쾌한 플러그인입니다.</p>
<p>반대로&nbsp;방문자의 입장에서는 조금 다를 것입니다. 어떤 글을 읽고 해당 주제에 대해 좀더 다가가고 싶은 일말의 마음과 막상 관련된 키워드를 통해 검색 엔진에서 결과 목록을 한번 훑어 보기라고 하고자 하는 마음 사이에 하나의 threshold가 있다고 가정한다면 그 threshold가 바로 적절한 키워드 선정과 실제 검색 수행 작업에 드는 공일 것입니다. 쥐꼬리보다 적은&nbsp;것이지만, 현실적으로는 분명 하나의 threshold로 작용하고 있다고 생각합니다. 이 플로그인 혹은 이 메카니즘이 그 작은 벽을 조금이라도 낮추는데&nbsp;일조를 할 수 있길 기대합니다.</p>]]>
        <![CDATA[<h4>Screenshots</h4>
<p><img alt="" src="http://alogblog.com/movabletype/plugins/images/WebSSearchy-1.png" /></p>
<p>먼저 엔트리 작성시에 원하는 검색 쿼리를 한 줄에 하나씩 입력합니다.<br /><br /><img alt="" src="http://alogblog.com/movabletype/plugins/images/WebSSearchy-3.png" /></p>
<p>쿼리 하나를 마우스로 드래그한 후, 옆의 선택 메뉴에서 적용하고자 하는 API 서비스와 그 서비스가 제공하는 하위 검색(타겟이라고 부르겠습니다) 부분을 선택한 후, 엔트리를 저장합니다.</p>
<h4>Requirement</h4>
<ul>
    <li>Movable Type 3.2 </li>
    <li>Perl's Encode, CGI, XML::Simple, LWP::UserAgent, DB_File, SOAP::Lite 모듈 </li>
    <li>Google API 키 ( 여기서 받습니다 <a href="http://www.google.com/apis/">http://www.google.com/apis/</a>&nbsp;) </li>
    <li>Naver API 키도 받습니다.&nbsp;(<a href="http://openapi.naver.com/">http://openapi.naver.com/</a>) </li>
</ul>
<h4>Installation</h4>
<p>아래 설치 절차가 꽤 길어 보입니다. 이 플러그인은 결과적으로는 간단한 링크만 나타나지만, 내부적으로는 크게 세 부분으로 구성되어 있는 약간 복잡한 놈입니다. 무버블타입의 메뉴 구성과 태그 처리 부분, 구글/네이버/야후/MT의 CGI들, AJAX 기능을 구현한 자바스크립트와 CSS 부분이 그것입니다. 플러그인은 크게,&nbsp; 말그대로 간편하게 풀기만 하면 바로 작동하는 것과 이 플러그인처럼 비교적 상세한 조정을 해줘야 하는 것으로 나눌 수 있습니다. 이 플러그인은&nbsp;내부적인 작동만을 도와주는 것이 아니라, 실제 결과 페이지의 디자인에까지 영향을 미치는 것이므로, 가능하면 사용자가 많은 커스터마이징을 할 수 있게 끔 개발을 했습니다. 한번 설치하면 끝이 아니라, 차후에라도 다양한 옵션과 유연한 디자인 변경이 가능하도록 하다보니, 처음 설치시에도 당연히 과정이 길어집니다. 다만 결코 어렵거나 복잡한 것은 없다 봅니다. 일단 기본 설치 과정만 끝내면 이후의 커스터마이징 과정 등은 몰라도 사용에 전혀 지장이 없습니다. 느긋한 마음으로 커피 한잔 마시면서 차근히 따라 가시면 될거라 봅니다.</p>
<p>1.<br /><a href="http://alogblog.com/downloads/dn.cgi?webSSearchy-3.2.01.tar.gz">압축 파일을</a> 받아서 (mt 홈) 폴더 밑에서 $ tar xvfz webSSearchy-3.2.01.tar.gz 같은 명령으로 풉니다.<br />(mt 홈)/mt-config.cgi에 <strong>AltTemplate search_rss search_rss.tmpl</strong> 을 추가합니다.</p>
<p>2.<br />(mt 홈)/webSSearchy/&nbsp;폴더를 적당한 다른 곳으로 옮겨도 좋습니다. 이 글에서는 이 폴더를 웹 루트 폴더로 옮겼다고 가정합니다.</p>
<p>3.<br />webSSearchy/*.<strong>cgi's</strong> 파일들에 실행 권한이 주어졌나 확인합니다. 그런 후 브라우저에서 http:/ / your_domain/webSSearchy/<strong>check.cgi</strong> 주소로 체크 CGI를 열어 봅니다. 이 CGI는 이 플러그인이 필요로하는 펄 모듈이 시스템에 설치되어 있나와 폴더에 파일을 만들 수 있나 체크합니다. 결과에 따라 적절한 대응을 하십시요.</p>
<p>4.<br />MT의&nbsp;Individual Entry Archive 템플릿을 열고 아래 태그를 적절한 위치에 삽입합니다. 여기서 적절한 위치한 당연히&nbsp;webSSearchy 검색 링크가 나타날 곳이겠죠. 여기서 주어진 태그 조합은 하나의 일례입니다. 차후에 원하는 대로 얼마든지 변경하실 수 있습니다.</p>
<div class="Code">&lt;MTIfWebSSearchy&gt;<br />&nbsp;&lt;h3 id=&quot;webSSearchy-header&quot;&gt;webSSearchy&lt;/h3&gt;<br />&nbsp;&lt;div class=&quot;webSSearchyLinks&quot;&gt;<br />&nbsp;&lt;MTWebSSearchys&gt;&lt;MTWebSSearchyLink&gt;&lt;/MTWebSSearchys&gt;<br />&nbsp;&lt;/div&gt;<br />&nbsp;&lt;div id=&quot;webSSearchyResult&lt;$MTEntryID$&gt;&quot; class=&quot;webSSearchyResult&quot;&gt;&lt;/div&gt;<br />&lt;/MTIfWebSSearchy&gt;</div>
<p>또&nbsp;<strong>&lt;head&gt;</strong> 부분에 아래 두 줄을 삽입하고 저장합니다. 이때 당연히 webSSearchy/ 폴더의 경로를 맞춰 줘야 겠죠.</p>
<div class="Code">&lt;link rel=&quot;stylesheet&quot; href=&quot;/webSSearchy/webSSearchy.css&quot; type=&quot;text/css&quot; /&gt;<br />&lt;script src=&quot;/webSSearchy/webSSearchy.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
<p>5.<br />webSSearchy/<strong>google.cgi</strong> 파일을 엽니다. 많은 세부적인 설정을 할 수 있지만, 일단은$apiKey 와 $wsdl 변수에 대해 자신의 환경에 맞는 값으로 세팅을 합니다.</p>
<p>6.<br />webSSearchy/<strong>mt.cgi</strong> 파일을 열고, $service_alias&nbsp;와 $mt_search_url 변수도 자신에 맞게 바꿔 줍니다. MT에서도 자체적으로 검색 CGI가 있는건 아실겁니다. 이 검색은 일반적인 HTML 페이지로 결과를 보여주죠. 이 mt.cgi는 그것을 RSS 포맷으로 반환하도록 한 후, 그 결과를 이용해 다른 여타 웹서비스랑 같이 표시해주기 위한 것입니다.</p>
<p>7.<br />webSSearchy/<strong>webSSearchy.js</strong> 파일도 열어서CGIbaseURL,&nbsp;progressingImage 두 변수를 또 적절히 바꿔 줍니다. 각각의 변수가 어떤 의미인지는 해당 파일의 설명을 참조하세요.</p>
<p>8.<br />webSSearchy/<strong>webSSearchy.css</strong> 파일은 앞선 템플릿 구조하에 적용되는 CSS입니다. 각각의 서비스 링크에 해당 파비콘 이미지를 배경으로 사용하도록 디자인했는데, 그중 자신의 MT 블로그에 해당하는 파비콘의 주소를 맞춰 줘야 겠죠.</p>
<p>9.<br />(mt 홈)/plugins/alogblog/<strong>webSSearchy.pl</strong> 파일을 열고&nbsp;service_alias 부분에서 alogblog이라고 되어 있는 부분을 자신의 별칭으로 바꿉니다. alogblog이 좋으시면 걍 쓰시구요. 지금 단계에선 이것들이 각각 정확이 어떤 의민가 잘 모르실겁니다. 그냥 설명대로 대충 작동시켜놓고 링크 두세번 클릭하면서 결과보고... 이러면 감이 올겁니다.</p>
<p>10.<br />이제 대충 끝난거 같은데요? 테스트 엔트리를 하나 열고 위의 스크린샷에 나와 있는 식으로 한줄에 하나의 쿼리를 넣고 오른쪽에서 원하는 서비스/타겟을 선택한 후, 저장합니다. 그리고 결과 페이지에서 링크가 작동하나 확인합니다. 한번에 되면 당장 로또부터 사시구요. ㅎㅎㅎ 안되면 다시 차근히 따져보면 됩니다. 여기까지 따라하는데 머리가 찌끈하시면 아래 내용은 안보셔도 됩니다. 걍 형식적(?)으로 적어두는 세부 내용이니까요.</p>
<h4>webSSearchy 태그</h4>
<p>이 플러그인은 여덟 개의 MT 태그를 새로 만들어 줍니다. 이 태그들은 모두 엔트리 문맥(context) 내에서만 작동합니다. 즉,&nbsp;&lt;MTEntries&gt;[[&nbsp;여기!!! ]]&lt;/MTEntries&gt;, 혹은&nbsp;Individual Archive Entry&nbsp;템플릿 내에서 사용합니다.</p>
<ul>
    <li><strong>&lt;MTIfWebSSearchy&gt;</strong> : 조건 태그로서 해당 엔트리가 검색 쿼리를 가지고 있으면 태그 내의 내용을 표시하는 방식입니다.&nbsp;따라서 태그로 디자인시 이 태그로 감싸줘야 겠죠.&nbsp; </li>
    <li><strong>&lt;MTWebSSearchys&gt;</strong> :&nbsp;하나의 엔트리는&nbsp;복수 개의 쿼리를 가질 수 있는데, 이때 그 하나 각각을 루프를 돌면서 처리하는 태그입니다.&nbsp;&lt;MTEntries&gt;와 같은 개념입니다.&nbsp; </li>
    <li><strong>&lt;$MTWebSSearchyService$&gt;</strong> :&nbsp;서비스 네임을 나타냅니다. 여기서 서비스 네임이란&nbsp;'naver', 'yahoo', 'google' 같은 이름입니다. </li>
    <li><strong>&lt;$MTWebSSearchyServiceAlias$&gt;</strong> : 서비스의 별명을 나타냅니다. 앞선 서비스 네임은 영문 소문자로 구성되며 프로그램 내부적으로 고정된 값인 반면, 이 Alias는 그것에 대한 별명입니다. 가령 'naver'에&nbsp;'Naver' 혹은&nbsp;'네이버' 같은 식으로 별명을 주는 겁니다. 원래 목적은 Localization을 위한 목적입니다.&nbsp;실질적으로는 서비스 네임은 CSS의 id, class 지정에 사용할 수 있고, 별명은 text/value&nbsp;등 사용자에게 가시적으로 보이는 목적입니다.&nbsp; </li>
    <li><strong>&lt;$MTWebSSearchyTarget$&gt;</strong> :&nbsp;하나의 서비스, 즉 네이버, 구글, 야후 등의 웹서비스는 각기 다른 하위 검색을 가집니다. 가령 네이버는 '지식, 문서, 웹, 도서 등', 야후는 '이미지, 비디오, 여행 등'... 이것을 타겟이라고 칭합니다. 당연히 이 값도 앞선 서비스 네임처럼 고정적인 값입니다. </li>
    <li><strong>&lt;$MTWebSSearchyTargetAlias$&gt;</strong> :&nbsp;타겟에 대한 별명입니다. 서비스/타겟 각각의 별명은 해당 CGI 프로그램과 메인 플러그인 프로그램인 webSSearchy.pl에서 동시에 지정해주면 됩니다.&nbsp; </li>
    <li><strong>&lt;$MTWebSSearchyQuery$&gt;</strong> :&nbsp;검색 쿼리 자체의 값입니다.&nbsp; </li>
    <li><strong>&lt;$MTWebSSearchyLink$&gt;</strong> :&nbsp;&lt;a href=&quot;#&quot; onClick=&quot;...&quot;&gt;..&lt;/a&gt; 식으로 미리 만들어진 검색 링크를 표시해 줍니다. </li>
</ul>
<p><span class="yellow-pen">예제&nbsp;1</span></p>
<p>만약 엔트리에, &nbsp;&quot;What is Web 2.0?&quot; 이라는 쿼리로 구글에서 검색, &quot;Sharapova&quot;라는 쿼리로 야후에서 이미지 검색을 해주는&nbsp;webSSearchy 링크를 박는다고 가정합니다. 그럼 먼저 엔트리 작성창의 &quot;Queries for webSSearchy&quot; 박스에 한줄에 하나씩 위 쿼리를 입력한 후, 오른쪽의 선택창에서 원하는 각각의 서비스/타겟을 선택합니다. 그럼 아래와 같은 모습으로 나타날 것입니다.<br /><strong>google.search.What is Web 2.0?<br />yahoo.image.Sharapova</strong><br />타자가 더 빠르시고 각각의 서비스/타겟에 대한 이름을 외운다면 걍 손으로 바로 입력해도 되겠죠. 한 줄에 각각 &quot;서비스 네임(콤마)타겟 네임(콤마)쿼리&quot; 식입니다.</p>
<p>그리고 템플릿에 아래와 같은 식으로 태그를 만들었다고 가정하면,</p>
<div class="Code">&lt;MTIfWebSSearchy&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;MTWebSSearchys&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p class=&quot;&lt;$MTWebSSearchyService$&gt;&quot;&gt;&lt;MTWebSSearchyServiceAlias&gt;&lt;/p&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;p class=&quot;&lt;$MTWebSSearchyTarget$&gt;&quot;&gt;&lt;MTWebSSearchyTargetAlias&gt;&lt;/p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;MTWebSSearchyQuery&gt;&lt;/p&gt;<br /><br />&nbsp;&nbsp;&nbsp; &lt;/MTWebSSearchys&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&lt;/MTIfWebSSearchy&gt;</div>
<p>그럼 그 결과는 아래처럼 나타나겠죠. 이 자체만으로는 그리 쓸모없는 예제군요.</p>
<div class="Code">&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p class=&quot;google&quot;&gt;Google&lt;/p&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;p class=&quot;search&quot;&gt;Search&lt;/p&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &lt;p&gt;What is Web 2.0?&lt;/p&gt;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;p class=&quot;yahoo&quot;&gt;Yahoo&lt;/p&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;p class=&quot;image&quot;&gt;Image&lt;/p&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;p&gt;Sharapova&lt;/p&gt;<br /><br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;</div>
<p><span class="yellow-pen">예제&nbsp;2</span></p>
<p>앞선 설치 과정에선 <strong>&lt;MTWebSSearchyLink&gt;</strong> 태그를 사용했었습니다. 이 태그는 좀 간편하게 태그를 꾸밀 수 있도록 마련한 유틸리티 태그입니다. 이 태그는 아래와 같은 다른 태그의 조합과 정확히 같은 결과입니다.</p>
<div class="Code">&lt;a href='#' class='webSSearchy &lt;$MTWebSSearchyService$&gt;' onClick='return new WebSSearchy(&quot;&lt;$MTWebSSearchyService$&gt;&quot;,this.innerHTML, &lt;$MTEntryID$&gt;).request()'&gt;&lt;$MTWebSSearchyTargetAlias$&gt;::&lt;$MTWebSSearchyQuery$&gt;&lt;/a&gt;</div>
<p>즉 &lt;MTWebSSearchyLink&gt; 태그 대신에 위 태그 조합을 사용해도 된다는 거죠. 그럼 실제 그 결과는,</p>
<div class="Code">&lt;a href='#' class='webSSearchy google' onClick='return new WebSSearchy(&quot;google&quot;,this.innerHTML, 123).request()'&gt;Search::What is Web 2.0?&lt;/a&gt;</div>
<p>위처럼 나타날 것입니다. 여기서 중요한 것은 방문자가 검색 링크를 클릭했을 경우, onClick=&quot;...&quot; 부분을 실행하게 해줘야 한다는 것입니다. 만약 디폴트처럼 &lt;a&gt; 태그가 아니라 &lt;input&gt;, &lt;button&gt; 등을 사용하고자 할 경우에는 바로 위의 태그 조합을 잘 응용해서 onClick하도록 꾸며주면 됩니다. 이때 위 자바스크립트 객체(WebSSearchy)의 인자는 위처럼, ('서비스 네임', '타겟 별명::쿼리', 엔트리 ID)가 최종적으로 넘어가도록 해야 한다는 것입니다.</p>
<h4>Customization</h4>
<p><span class="yellow-pen">검색 결과 템플릿</span></p>
<p>앞선 MT 태그, 템플릿은 검색 링크 버튼을 나타내기 위한 것입니다. 고로 이것은 정적인 의미를 가집니다. 여기서 말하는 검색 결과를 나타내기 위한 템플릿이라는 것은, 각각의 서비스에 해당하는 CGI가 복수 개의 검색 결과를 어떤 모양으로 전달할 것이냐는 것을 정하는 것입니다.</p>
<p>예를 들어 &quot;블로그&quot;라는 쿼리로 구글 검색을 지정하면 10개의 검색 결과가 넘어오는데, 구글은 주소/제목/설명 이렇게 대략 세개의 필드만으로 결과 하나를 꾸며서 줍니다. &quot;블로그&quot;라고 야후의 뉴스 검색을 지정하면 마찬가지로 디폴트로 10개의 검색 결과를 받지만, 그 하나의 검색 결과에는 야후/뉴스 검색 특유의 NewsSource라는 이름의 필드가 포함됩니다. 즉 각각의 서비스/타겟 별로 다 다른 결과 필드를 갖는다고 생각해도 됩니다. 이럴때 복수개의 결과 필드(이것을 내부적으로 vocabulary라고 부릅니다) 중에 어떤 놈을 골라서 화면에 어떤 디자인으로 나타낼 것인가...하는 것은 순전히 여러분 마음입니다.</p>
<p>&lt;a href=&quot;주소&quot; title=&quot;설명&quot;&gt;제목&lt;/a&gt;, 이런식을 원할 수도 있을 것이고,<br />&lt;a href=&quot;주소&quot;&gt;제목&lt;/a&gt;설명, 이런 식을 원할 수도 있을 것이고, 만약 그것이 야후/뉴스 결과라면,<br />&lt;a href=&quot;주소&quot; title=&quot;뉴스 소스&quot;&gt;제목&lt;/a&gt;설명, 머 이런 식도 가능하겠죠. 또 그 복수개의 각각 항목을 &lt;li&gt;...&lt;/li&gt;로 감싼 목록 형태로 반환할 것이냐, 단순히 &lt;p&gt;...&lt;/p&gt;로 감싸서 보낼 것이냐... 머 이런것, 혹은 그 각각에 class, id 속성을 적절히 주는 것 등등이 모두 각각의 CGI에 나와 있는 템플릿에서 설정해 줄 수 있는 것입니다.</p>
<p>이 템플릿에는 하나의 룰이 있는데, 그것은 해당 타겟이 제공하는 vocabulary 이름을 모두 대문자로 표시한 후, 앞뒤로 두개씩의 언더바를 붙여서 템플릿에서 표시한다는 것입니다.template_header와 template_footer에는 각각&nbsp;__TARGET__, __TARGETALIAS__, __SERVICE__, __SERVICEALIAS, __QUERY__를 사용할 수 있습니다. 결국 원한다고 하면, 서비스 별로, 각 서비스의 타겟 별로 각기 다른 결과 CSS 디자인도 할 수 있게 되는 것입니다. 본문 템플릿에는&nbsp;특별히 __EVENODD__라는 놈이 마련되어 있습니다. 복수개의 결과를 짝/홀 수에 따라 &quot;even&quot;, &quot;odd&quot;라는 문자열을 반환합니다..</p>
<p><span class="yellow-pen">별명(Alias)</span></p>
<p>앞서도 약간 설명했듯이 서비스 네임('google', 'yahoo', 'naver'), 타겟 네임('search', 'image', 'news',&nbsp;등)은 변경이 불가합니다. 프로그램 혹은 웹서비스 규약 자체적으로 고정된 값이기 때문입니다. 특별히 서비스 네임은 그것의 CGI 파일 이름으로도 사용됩니다. 대신 그 각각에 대해 별명(alias)를 정해서 사용할 수 있습니다.</p>
<p>만약 디폴트로 정해진 이름을 바꿔서 사용하고자 한다면, 해당 CGI와 메인 플러그인(plugins/alogblog/webSSearchy.pl) 프로그램 양쪽에서 다 같이 같은 값으로 맞춰 줘야 합니다. 혹 MT의 동적 퍼블리싱을 사용하는 경우에는 php/plugins/init.alogblog-webSSearchy.php 파일에서 입니다.</p>
<p><span class="yellow-pen">결과 캐싱</span> </p>
<p>검색 웹서비스는 그 성격상 같은 쿼리에 대한 한 서비스의 결과 목록이 하루 혹은 며칠 사이에는 큰 변화가 없다고 기본적으로 봅니다. 물론 실시간 검색 순위 같은 특수한 경우는 예외겠죠. 따라서 &quot;블로그&quot;라는 검색 쿼리를 매번 클릭할 때마다 웹서비스에 요구할 필요가 적습니다. 웹서비스 측도 귀찮을 테구(같은거 자꾸 물어보니까 ㅎㅎ) 블로그 서버쪽도 귀찮죠. 사실은 그 이유보다는, 속도의 문제 때문에 캐싱 기법을 도입할 수 밖에 없습니다. 물론 그 속도라는 것이 그리~ 늦다고 말할 순 없지만, 상쾌할 정도로 빠르진 않습니다. 아무리 AJAX 기법을 통해 비동기화로 처리한다지만, 그것 자체가 딜레이 감을 감쇄시켜주진 못합니다. 특히나 구글의 경우 쓸데없이 SOAP같은 덩치큰 베이스 프로토콜을 사용해서 그런지 어쩐지 반응속도가 제일(그것도 꽤 많이)&nbsp;느립니다. 그래서 아이러니하게 캐싱의 최대 수혜자는 구글입니다.</p>
<p>기본적으로 각 웹서비스 CGI에서 이 캐싱에 대한 설정을 변경할 수 있습니다. 기본은 3일간 캐싱합니다. 즉 지금 &quot;블로그&quot;라는 쿼리로 검색 링크를 누르면, 먼저 캐시에 해당 쿼리 결과가 있나 봅니다. 있는데 그 결과가 3일 이전의 것이면 그것을 바로 보여주고, 3일이 지난 결과면 지우고 새로 웹서비스를 받아 보여주는 식입니다. 물론 3일이라는 값은 걍 정한 겁니다. 야휴/뉴스 검색의 경우 그 성질상 하루로 되어 있습니다. 이처럼 그 서비스/타겟의 성격에 따라 <strong>cache_life</strong>를 적절히 변경해 줍니다. <strong>cache_max_size</strong> 는 하나의 서비스에 대해 최대 몇개의 쿼리 결과를 보관할 것인가를 정합니다. 기본 300개 입니다. 일정 시간이 지난후 캐시 파일의 크기를 살펴보고 너무 크거나 작으면 적절히 캐시 레코드 수를 조절해 주면 좋을 것입니다.</p>
<p><span class="yellow-pen">기타</span></p>
<p>각 웹서비스 API는 그 외에도 다양한 쿼리 패러미터를 가집니다. 예를 들어 결과 갯수나 정렬 방법 등이 그것인데요, 이런 것도 각 서비스에 해당하는 CGI에서 조절가능합니다.</p>
<h4>Example</h4>
<p>네이버를 예로 들면요,<br /><br />webSSearchy/naver.cgi를 열어 보시면, &quot;my %<strong>naver_vocabulary</strong> = (..&quot; 이 부분이 있습니다. 책(book) 관련한 검색결과를 다르게 꾸미고 싶으시다면, 일단 네이버 API는 책 결과에 대해 어떤 필드(field) 결과를 주는지 알아야할것입니다. 이게 바로 naver_vocabulary입니다. 이 변수의 book 항목을 보시면, basic 항목(title', 'link', 'description'),&nbsp; 'image', 'author', 'price', 'discount', 'publisher', 'pubdate', 'isbn' 의 단어장(?)을 네이버는 책 검색결과의 필드로 주는 것을 알수 있습니다. 이제 이 정보를 알았으니 HTML 태그를 바꿔 적용해봐야겠죠? <br /><br />그건 그 위의 세 변수<br />$naver_template_header(머리),&nbsp; %naver_template(본문), $naver_template_footer(꼬리) 에 의해 결정됩니다.</p>
<p>1, 먼저 디폴트의 책 관련 본문 템플릿을 보면,<br />'book'&nbsp; =&gt; '&lt;li&gt;&lt;a href=&quot;__LINK__&quot; title=&quot;__DESCRIPTION__&quot;&gt;&lt;img src=&quot;__IMAGE__&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/li&gt;', <br />이렇게 되어 있네요.<br />__LINK__는 결과 필드의 'link'를 나타냅니다. 저 부분을 원하는 HTML태그로 마음대로 디자인할 수 있습니다. 만약 책 결과에서 가격정보를 표시하고 싶다면, 짐작으로 그건 'price' 필드일테니 실제 템플릿에서는 __PRICE__(언더바 두개) 로 삽입하면 됩니다.<br /><br />그리고 본문 필드에는 짝수 결과에는 문자열 &quot;even&quot;, 홀수 결과에는 &quot;odd&quot;라는 문자를 반환해주는 __EVENODD__ 라는 추가 태그(?)를 사용할 수 있습니다. <br /><br />2. 그리고 머리/꼬리 부분도 원하는 대로 디자인할 수 있는데요,<br />이 부분에서 사용할 수 있는 태그는 __TARGET__, __TARGETALIAS__, __SERVICE__, __SERVICEALIAS__, __QUERY__ 등이 있습니다.<br /><br />이제 &lt;ul&gt;&lt;li /&gt;&lt;li /&gt;...&lt;/ul&gt;구조가 아닌, 그냥 &lt;p&gt;구조로 결과를 디자인하고 싶다면, <br /><br />my $naver_template_header = '&lt;div class=\&quot;__TARGET__\&quot;&gt;';<br />my %naver_template = (<br />'book'&nbsp; =&gt; '&lt;p class=&quot;__EVENODD__&quot;&gt;&lt;a href=&quot;__LINK__&quot; title=&quot;가격 : __PRICE__원 , 설명 : __DESCRIPTION__&quot;&gt;&lt;img src=&quot;__IMAGE__&quot; alt=&quot;__TITLE__&quot; /&gt;&lt;/a&gt;저자 : __AUTHOR__&lt;/p&gt;', <br />my $naver_template_footer = '&lt;/div&gt;';<br /><br />식으로 마음대로 표현 할 수 있습니다.&nbsp; 이런 템플릿을 적용했을때 그 결과는,<br />&lt;div class=&quot;book&quot;&gt;<br />&lt;p&gt;&lt;a class=&quot;odd&quot; href=&quot;..&quot; title=&quot;가격 : 1000원, 설명 : ...&quot;&gt;&lt;img src=&quot;...&quot; .. /&gt;&lt;a&gt;저자 : xxx&lt;/p&gt; <br />...(반복)<br />&lt;/div&gt;<br />가 될 것입니다.<br /><br />3. CSS 구조도 이것을 따르겠죠?<br />만약 네이버 결과의 책 결과에만 좀더 다른 CSS 를 적용하고 싶다면, 위 템플릿을 쓴다는 가정하에서<br />webSSearchy/webSSearchy.css에 div.book {...} 식으로 적용하면 될것입니다.</p>
<h4>Troubleshooting</h4>
<p>일단 앞의 Installation 과정을 따른 결과, 출력한 엔트리에 webSSearchy 링크가 나타나야 합니다. 이게 안나타 났다면, 설치과정에서 아마 경로 설정 등에서 실수가 있었을 가능성이 큽니다.</p>
<p>링크가 나타났는데, 그 링크를 클릭하니까 빨간색 진행 막대가 나타나긴 하는데, 검색결과가 안나타나고 어느 정도 시간이 지난후 &quot;Timeouted, Try again&quot; 이런 메시지가 나타나는 경우가 있습니다. 예를 들어 설명하겠습니다. 만약 Naver 검색을 부르는 링크를 클릭했다면, http://자신의 도메인/.../webSSearchy/naver.cgi를 부르게 됩니다. 따라서 2가지 실수의 가능성이 존재하는데요, 첫째는 앞서 설치한 webSSearch/ 폴더의 경로를 webSSearch.js 파일의 CGIbaseURL 변수에서 설정을 잘못해서, 실제 존재하지 않는 경로의 cgi를 콜하고 결과를 무한정 기다리는 경우입니다. 둘째는, 제대로 naver.cgi를 콜했는데(이 콜은 webSSearch.js에서 합니다) 순전히 CGI내에서 어떤 에러로 결과를 리턴하지 못하기 때문에, 설정된 timeout 시간동안 결과를 못받아서 저런 메시지가 나타나는 것입니다. 아마 이 문제가 가장 빈번하지 않을까 생각됩니다. 이하 이 경우 에러를 잡는 방법을 설명합니다.</p>
<p>먼저 webSSearchy/naver.cgi를 naver.cgi.org 등으로 백업을 하나 해둡니다.<br />브라우저에서 http://자신의 도메인/webSSearchy경로/naver.cgi 주소를 열어봅니다. IE에서는 &quot;text/javascript&quot;라는 헤더를 이해못해서 다운로드 창이 뜰겁니다. 파이어폭스/모질라/오페라 등의 브라우저가 있다면, 여기서 테스트하고, 만약 IE 뿐인데 굳이 위 현대 브라우저가 싫다면, naver.cgi의 맨 밑부분에서 text/javascript 부분을 text/plain 정도로 바꿔준후 계속 테스트하면 됩니다.</p>
<p>naver.cgi를 브라우저로 주소를 입력하고 열면 아마 'Naver의 API 종류가 잘못 지정..' 이런 화면으로 나타날 것입니다. 원래 이 CGI는 인자로 서비스 타겟과 쿼리를 받아야 네이버한테 서비스를 질의할 수 있기 때문입니다. 그래서 강제로 프로그램 내에서 임의의 값을 입력해놓고 테스트하겠습니다. 107라인 근처에서,</p>
<div class="Code">&nbsp;&nbsp;&nbsp; $eid = $cgi-&gt;param('eid');<br />&nbsp;&nbsp;&nbsp; my $tq = $cgi-&gt;param('targetquery');<br />$tq = '책::AJAX';&nbsp;&nbsp;&nbsp; # &lt;----&nbsp;이런 식으로 삽입.<br />&nbsp;&nbsp;&nbsp; $tq_to_return = $tq;</div>
<p>위처럼 한줄의 $tq 변수에 '타겟::쿼리'를 입력합니다. 이때 반드시 이 CGI 파일은 UTF-8 인코딩으로 저장해야 합니다. 그런 후, 다시 브라우저에서 naver.cgi를 열어보면, 어떤 에러가 나타날 가능성이 있습니다. 주로 필요한 모듈이 설치되어 있지 않거나, 설치되어 있는데, 경로를 못찾아서 없는 것으로 인식해서 생기는 문제가 대부분일 것입니다. 예를 들어 결과 페이지에서 'LWP::UserAgent 모듈을 찾을 수 없습니다.'라는 메시지가 나타나면 이 모듈에서 문제가 생긴것을 알 수 있습니다. 이 CGI가 사용하는&nbsp;모듈은 MT를 설치하면 mt/extlib 밑에 존재하는 것들이 대부분입니다. 따라서 naver.cgi의 11라인에서 주석처리 되어 있는 #use lib '/...../mt/extlib'; 부분의 주석을 지우고, 자신의 mt/extlb까지의 절대 경로를 입력한후 다시 해봅니다. 이 후에도 없다고 나오는 모듈은 설치가 되어 있지 않거나, 문제가 있는 설치일 가능성이 크므로, 웹호스팅측에 문의를 하셔야 합니다.</p>
<p>그외 이런 테스트 와중에 Perl문법에 어긋나게 잘못 수정한 경우 Internal Server Error페이지가 보일 수 있습니다. 이 경우에는 텔넷상에서 $ perl naver.cgi 식으로 실행하시면 에러가 있는 라인 등을 보여주니, 찾아서 수정하면 됩니다.</p>
<p>&nbsp;</p>
<h4>Notes</h4>
<ul>
    <li><img alt="" src="/mt32/mt-static/FCKeditor/emoticons/icon_redface.gif" />&nbsp;이 페이지의 아래에서도 그렇고, 위의 Individual Entry Archive에 넣으라고 제시된 기본 템플릿에서도 그렇고, 모두 &lt;h3&gt;webSSearchy&lt;/h3&gt;로 헤더가 표시되어 있습니다. 이건 하나의 예일 뿐입니다. 저는 제가 만든거니까 일부러 webSSearchy라고 썼습니다. 실제 사용하시는 분들은 이 플러그인을 사용해서 겉으로 드러나는 모든 부분을 자신이 원하는 대로 바꿀 수 있습니다. 예를 들어, 책에 관련된 블로그라고 한다면, &quot;관련된 주제의 책, 웹에서 더 검색해보기&quot; 혹은 &quot;책 더 찾아 볼깝슈?&quot; 등 얼마든지 주제에 맞게 바꾸실 수 있습니다. 혹 이 플러그인을 사용하면 webSSearchy라는 표시를 해야하는것 아닌가 해서, 그냥 사용하시는 일이 있으실까보 적습니다. </li>
    <li>현재로는 네이버/구글/야후/MT에 대한 CGI가 제공됩니다만, 약간의 지식만 있는 개발자라면 다른 웹서비스에 대한 CGI도 쉽게 만들 수 있을 것입니다. 예를 들면 Amazon의 책검색, eBay 물건 검색 등등. 이때 이런 것도 이 플러그인과 쉽게 연계될 수 있습니다. 기본으로 제공되는 CGI의 입력/출력 부분만 보면 양자간의 인터페이스는 어렵지 않습니다. 혹 개발하는 분은&nbsp;알려주세요.&nbsp; </li>
    <li>google.cgi는&nbsp;Perl의 SOAP::Lite 모듈을 사용하는데, 간혹 이런 저런 문제로 한글 쿼리를 입력했을 경우 결과가 깨져나타나는 경우가 있습니다. 이때는<img alt="" src="/mt32/mt-static/FCKeditor/emoticons/lightbulb.gif" /> <a href="/downloads/dn.cgi?webSSearch-google-php.tar.gz">PHP 버전으로 된 이것을</a> 한번 이용해 보세요. 압축 파일을 풀면 google.php와 <a class="technorati" href="http://technorati.com/tag/nusoap" rel="tag">NuSOAP</a> PHP 라이브러리가 있습니다. 이것을 webSSearchy/ 폴더 밑으로 옮깁니다. 즉, webSSearchy/google.php 와 webSSearchy/NuSOAP/nusoap.php 가 될 것입니다. 그리고 마찬가지로 google.php에서 구글키와 wsdl 파일의 경로를 설정해주세요. 마지막 하나 남은 것은, webSSearchy.js 파일을 기존의 것과 바꿔 주면 됩니다. </li>
</ul>
<h4>License</h4>
Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>.
<h4>Version History</h4>
<ul>
    <li>3.2.01 : PHP version of Google API included. </li>
    <li>3.2.01 :&nbsp;First release. </li>
</ul>]]>
    </content>
</entry>
<entry>
    <title>Greasemonkey Script - Google Reader BlogThis2Me</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/greasemonkey_script_google_reader_blogthis2me/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=56" title="Greasemonkey Script - Google Reader BlogThis2Me" />
    <id>tag:alogblog.com,2006:/movabletype/korean_plugins//2.56</id>
    
    <published>2006-02-14T18:06:52Z</published>
    <updated>2006-05-05T03:45:22Z</updated>
    
    <summary><![CDATA[Go to English entry 새로운 온라인 피드수집기인 구글 리더에서 디폴트로 제공되는 &quot;BlogThis!&quot; 액션 명령은 구글 블로그 시스템인 blogger.com 상의 블로그로만 가능합니다(너무 당연하겠지만). 이 파이어폭스의 그리스몽키 확장을 이용한 스크립트를 설치하면, 자신의 블로그(북마클릿 기능을 지원하는)로 직접 해당 아이템을 로깅할 수 있습니다. 주로...]]></summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="http://alogblog.com/movabletype/plugins/greasemonkey_script_google_reader_blogthis2me/">Go to English entry</a></p>
<p>새로운 온라인 피드수집기인 <a class="technorati" href="http://technorati.com/tag/구글 리더" rel="tag">구글 리더</a>에서 디폴트로 제공되는 &quot;<strong>BlogThis!</strong>&quot; 액션 명령은 구글 블로그 시스템인 blogger.com 상의 블로그로만 가능합니다(너무 당연하겠지만). 이 파이어폭스의 그리스몽키 확장을 이용한 스크립트를 설치하면, 자신의 블로그(<a class="technorati" href="http://technorati.com/tag/북마클릿" rel="tag">북마클릿</a> 기능을 지원하는)로 직접 해당 아이템을 로깅할 수 있습니다. 주로 링크블로그 이용시에 조금 편리할런지 모르겠군요.</p>
<p><br /><br /><img alt="" src="http://alogblog.com/movabletype/plugins/images/blogthis2me.gif" /></p>]]>
        <![CDATA[<h4>Requirement</h4>
<ul>
    <li>북마클릿(bookmarklet)을 제공하는 블로그 시스템<br /></li>
    <li>FireFox <a href="http://greasemonkey.mozdev.org/">Greasemonkey</a> 확장(extention)<br /></li>
</ul>
<h4>Installation</h4>
<ul>
    <li>아직 파폭 Greasemonkey 확장을 설치 안했다면 설치한 후&nbsp;상태표시줄의 몽키를 활성화.<br /></li>
    <li>&nbsp;<a href="http://alogblog.com/greasemonkey/blogthis2me.user.js">이 링크</a>를 클릭해서 설치합니다.<br /></li>
    <li>파폭의 도구 / Manage User Scripts... / Google Reader's BlogThis2Me 항목으로 갑니다.<br /></li>
    <li>&quot;Enable&quot;을 켜고&nbsp;&quot;Edit&quot; 버튼을 누릅니다. 만약 처음 사용하는 거라면, 사용할 에디터를 정하는 과정을 먼저 요구할 겁니다. </li>
    <li><a class="technorati" href="http://technorati.com/tag/무버블타입" rel="tag">무버블타입</a>이나 <a class="technorati" href="http://technorati.com/tag/워드프레스" rel="tag">워드프레스</a>&nbsp;사용자라면&nbsp;'myURL' 변수만 적절히 자신의 환경에 맞게 설정하면 되고, 그 외 다른 블로그 시스템 사용자라면 파일내의 설명대로 간단히 설정하면 됩니다. </li>
</ul>
<h4>How to Use</h4>
<p>구글 리더(Google Reader)에서 원하는 피드의 아이템을 보다가 블로깅하고 싶은 항목에서 &quot;BlogThis!&quot; 액션 명령을 주면 됩니다.</p>
<h4>License</h4>
Relased under the <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons License</a>.
<h4>Version History</h4>
<ul>
    <li>1.0 : First release. </li>
</ul>]]>
    </content>
</entry>
<entry>
    <title>무버블타입에 FCKeditor 장착 플러그인</title>
    <link rel="alternate" type="text/html" href="http://alogblog.com/movabletype/korean_plugins/무버블타입에_fckeditor_장착_플러그인/" />
    <link rel="service.edit" type="application/atom+xml" href="http://alogblog.com/mt32/mt-atom.cgi/weblog/blog_id=2/entry_id=49" title="무버블타입에 FCKeditor 장착 플러그인" />
    <id>tag:alogblog.com,2005:/movabletype/korean_plugins//2.49</id>
    
    <published>2005-11-20T08:00:27Z</published>
    <updated>2006-04-26T06:26:44Z</updated>
    
    <summary>Go to English entry 이 플러그인은 Movable Type내에서 FCKeditor라는 WYSIWYG 에디터를 쉽게, 또 간편히 커스터마이징시켜 사용할 수 있게 해주는 것입니다. 현재 많은 공개된 WYSIWYG 에디터가 존재합니다. 저는 그 중에서 HTMLArea와 FCKeditor를 조금 사용해 봤는데 둘다 매우 좋은 놈입니다. 물론 그...</summary>
    <author>
        <name>Lee, Joon</name>
        <uri>http://alogblog.com/movabletype/</uri>
    </author>
    <category term="무버블타입 플러그인" />
    <content type="html" xml:lang="ko" xml:base="http://alogblog.com/movabletype/korean_plugins/">
        <![CDATA[<p><a href="http://alogblog.com/movabletype/plugins/full_featured_fckeditor_on_movable_type/">Go to English entry</a></p>

<p><br />
이 플러그인은 Movable Type내에서 FCKeditor라는 WYSIWYG 에디터를 쉽게, 또 간편히 커스터마이징시켜 사용할 수 있게 해주는 것입니다. 현재 많은 공개된 WYSIWYG 에디터가 존재합니다. 저는 그 중에서 HTMLArea와 FCKeditor를 조금 사용해 봤는데 둘다 매우 좋은 놈입니다. 물론 그 특성상 PC에 약간의 부하를 주긴 합니다만, 이 자체가 이의 사용여부를 가늠할 잣대로서의 비중은 점점 줄어들거라 봅니다.</p>

<p><a href="http://alogblog.com/movabletype/korean_plugins/alogblog_mt_인터페이스_플러그인/">alogblogMTinterface 플러그인</a>은 매우 많은 대체 MT 템플릿을 이용합니다. 따라서 사용자가 개인적으로 W~G 에디터를 삽입하고자 하거나 혹은 이를 위한 다른 플러그인(EnhancedEntryEditing같은)을 적용하고자 할 경우에, 이런 저런 문제를 겪을 가능성이 크다 봅니다. 그래서 EnhanceEntryEditing(이는 TinyMCE라는 에디터를 달아 줍니다.)라는 같은 류의 플러그인이 존재함에도 이를 새롭게 추가하게 되었습니다.</p>

<p>이 FCKeditor의 가장 큰 특징/장점 중의 하나가 바로 미디어 브라우져라고 불리는 기능입니다. 이를 이용해 간편하게 이미지 등을 엔트리 작성중에 업로드하고 이 주소를 바로 엔트리 상에 삽입해주는 기능인데, TinyMCE의 경우 이 기능이 별도의 플러그인으로 제공되는데...유료더군요. 유료다보니 기능 자체는 FCKeditor의 그것보다 좀더 좋은것 같습니다만, 당연 사용해보진 못했겠죠.</p>

<p>현재 이 페이지가 설명하는 플러그인은 원래 alogblogMTinterface라는 MT의 기본 인터페이스를 획기적으로(^^) 세련되게 변경해주는 플러그인의 업데이트 버전일 뿐입니다. 즉 현재 이 플러그인을 설치하면 FCKeditor만 MT의 기본 인터페이스에 추가시켜주는게 아니라, alogblogMTinterface라는 제 인터페이스위에 깔리게 됩니다. 이를 현재와 같이 별도의 페이지에 설명하는 것은, 이 FCKeditor사용에 좀더 중점을 두고 설명하기 위함입니다. 인터페이스 자체에 대한 의문 등은 원 페이지를 참조하시길 바람니다.</p>]]>
        <![CDATA[<h4>Requirement</h4>

<ul>
    <li>Movable Type 3.2</li>
    <li>PHP, FCKeditor의 미디어 브라우져/업로더 이용시</li>
</ul>

<h4>Features</h4>

<p><img src="http://alogblog.com/movabletype/plugins/images/fck-0.gif"/></p>

<ul>
<li>일반 textarea(FCKeditor창이 아닌)창의 크기를 동적으로 변경할 수 있습니다.</li>
<li>FCKeditor창의 크기를 커스터마이징할 수 있습니다.</li>
<li>이모티콘과 업로드한 파일을 저장할 UserFiles 폴더의 경로를 커스터마이징할 수 있습니다.</li>
<li>MT시스템의 템플릿을 이용해 FCK에디터의 템플릿 기능을 쉽게 이용할 수 있습니다.</li>
<li>MT시스템의 템플릿을 이용해 FCK에디터의 스타일 기능을 쉽게 이용할 수 있습니다.</li>
<li>alogblogMTinterface의 "classic, sky, peach" 스타일에 맞춘 FCK 스킨을 이용할 수 있습니다.</li>
<li>FCKeditor의 미디어 브라우져/업로더를 쉽게 이용할 수 있습니다.</li>
</ul>

<h4>Installation</h4>

<p>아래 내용을 차분히 따라 하면 됩니다. 실제 FCKeditor 사용만을 위해선 1번의 설치후에 5,9번 단계의 간단한 확인 조치만 하면 가능합니다. 나머지 단계는 FCKeditor의 템플릿/스타일 기능을 MT내에서 편하게 사용할 수 있도록 하기 위한 별도의 추가 조치입니다.</p>

<ol>

<p><li><a href="http://alogblog.com/downloads/cdn.cgi?alogblogMTinterface_fck-3.2.04.tar.gz">이 플로그인</a>을 받아, (mt home) 폴더 밑에서 $ tar xvfz alogblogMTinterface_fck-3.2.04.tar.gz 등과 같은 명령을 통해 풀어줍니다.</li><br />
<li>(mt home) 폴더 밑에서 <strong>$ perl&nbsp;&nbsp; tools/add-default-templates</strong> 명령을 실행합니다.<br />
( *** 만약 터미널 환경에서 이 명령을 실행할 수 없는 상황인 경우엔, 직접 이 명령이 하는 <a href="http://alogblog.com/doc/fckeditor_on_ftp_uploading.html">일련의 과정</a>을 수행해주면 가능합니다. )<br />
</li><br />
<li>(mt home)/mt-static/FCKeditor 폴더로 가서 <strong>$ chmod -R 777 UserFiles</strong> 등의 명령으로 모든 권한을 부여합니다.</li><br />
</ol></p>

<h4>Trial for verification</h4>

<h5>FCKeditor를 디폴트로 설정</h5>
"Create New Entry"을 눌러 새 엔트리 작성 화면을 열어 봅니다. 아마 FCKeditor가 나타나지 않을 겁니다. 그건 새로운 엔트리의 "Text Formatting" 이 "Convert Line Breaks"로 디폴트로 되어 있기 때문입니다. 디폴트로 FCKeditor를 사용하길 원한다면 블로그 설정에서 "New Entry Default"탭 메뉴에서 FCKeditor를 디폴트 텍스트 포맷팅으로 정해주면 됩니다.

<h5>링크/이미지/플래시 브라우져와 업로더</h5>
<img src="http://alogblog.com/movabletype/plugins/images/fck-3.gif" align="left"/>링크 브라우져라는 것은 엔트리 내에 a태그 즉 링크를 삽입할 때, 그 해당 자원의 주소href의 대상을 내 블로그 서버에 있는 어떤 자원을 가리키고자 할 때 사용하는 것입니다. 이미지/플래시도 마찬가지지만 각각의 파일타입에 맞게 제한되는 것만 다릅니다.

<p>먼저 "이미지 삽입" 메뉴버튼을 클릭해 봅니다. 그럼 팝업창이 뜹니다. 여기에서 소위 "업로더"와 "브라우져" 두가지의 조금 다른 방식으로 파일을 서버에 올릴 수 있습니다. Uploader의 경우에는 특정한 서브폴더를 지정할 수가 없고 그냥 UserFiles밑의 특정 폴더밑에만 바로 올립니다. 만약 자신의 별도로 서브폴더를 나눠서 사용하지 않는 상황에서, 이미 올린 파일이 아니라, 지금 새로 올리면서 그 파일을 링크/이미지/플래시의 주소로 이용하고자 할 경우에 편리합니다.</p>

<p>그 팝업창에서 "서버 보기"를 클릭하면 소위 "브라우져" 기능을 이용하는 게 됩니다. 말그대로 해당 파일타입관련한 폴더 밑에다 새로운 서브 폴더를 생성할 수도 있고, 거기에 파일을 올릴 수도 있습니다. 이때 새로운 폴더생성이 되지 않거나, 파일 업로드가 안되면 100에 98, 폴더 퍼미션 문제입니다.</p>

<p>이제 시험삼아 이미지 폴더에 테스트 용으로 올려놓은 cat 이미지 파일과 플래시 파일을 한번 엔트리에 삽입해 봅니다.</p>

<h5>FCKeditor의 템플릿/스타일 기능 사용을 위한 준비</h5>
지금껏 설치하고 설정한 단계만으로도 충분히 위지윅 기능을 바탕으로 에디터를 사용할 수 있습니다. 만약 지금까지의 단계로도 머리가 조금 복잡하다면, 이하 내용은 당장에 안보셔도 전혀 상관이 없습니다. 이 에디터를 익숙해질 정도로 사용하신 후, FCKeditor의 템플릿과 스타일 기능에도 관심이 생길 때, 아래 내용을 습득하셔도 됩니다.

<p><br />
지금까지의 사항만으로 위지윅 기능과 미디어 브라우져/업로더를 이용하여 편리한 블로깅 환경을 만들 수 있지만, 이것만으로는 FCKeditor의 고급기능과 또 이를 뒷받침하기 위한 이 플러그인의 기능을 다 이용하는 것은 아닙니다. 템플릿과 스타일 지정을 MT의 템플릿 메뉴에서 커스터마이징할 수 있다는 점이 이 플러그인의 최대 특징입니다. 아래 내용을 따라 준비를 합니다.</p>

<ol>
<li>먼저 System Overview 아래의 "List Weblogs" 페이지로 가서 현재 생성되어 있는 모든 블로그를 선택한 후에, "Add Default Template(s)" 액션을 실행합니다.</li>
<li>현재 블로그의 "List Template" 페이지로 가보면, 세 개의 FCKeditor 관련 템플릿을 볼 수 있습니다. 그 각각을 열고 Rebuild 를 해줘서 output file을 만들어 줍니다.</li>
<li>현재 블로그의 스타일스트 관련(styles-site.css) 템플릿을 열고 그 맨 첫줄에 <strong>@import url(fck_editorarea.css);</strong> 를 한줄 추가/리빌딩합니다.</li>
</ol>

<p><img src="http://alogblog.com/movabletype/plugins/images/fck-4.gif" align="left"/>* 어쩜 MT의 인덱스 템플릿 목록창에 난데없이 세개의 FCKeditor관련 템플릿이 있어서 의아해 하실수 있을지 모르겠습니다. 이 3개의 템플릿은 이미 설치과정에서 "디폴트" 템플릿으로 MT에 기록시켰고 또 현재 생성되어 있는 모든 블로그에 추가를 마쳤기 때문에 나타난겁니다. "디폴트" 템플릿이 되었다는 것은, 향후에 새로운 블로그를 생성시, 위의 세 템플릿도 같이 생성되어 진다는 뜻입니다. 물론 TemplateRefesh같은 액션을 적용할 수도 있게 됩니다. 이게 먼 소린지 잘 모르시면 설치과정의 2단계에서 있는 <a href="http://alogblog.com/movabletype/plugins/tool_for_adding_new_default_templates/">addDefaultTemplate  플러그인</a> 페이지를 보시기 바람니다.<br clear="all"/></p>

<h5>FCKeditor 템플릿:</h5>
<img src="http://alogblog.com/movabletype/plugins/images/fck-1.gif" align="left"/>FCKeditor 메뉴바에 있는 "템플릿" 버튼을 클릭해 봅니다. 나타나는 팝업창에서 "Plugin Document"을 한번 선택해 봅니다. 이 템플릿 기능을 이용하면 해당 창에 있던 기존의 내용은 사라지므로, 항상 처음에 템플릿 기능으로 사용해야 합니다. 제가 만들어놓은 플러그인 문서에 맞는 템플릿이 창에 삽입이 되어 나타나면 설정이 잘되어 있다는 뜻입니다.

<p>일반적인 신변위주의 블로그 엔트리의 경우 특별한 문서 템플릿이 필요없지만, 현재 보고 계신 제 플러그인 페이지처럼 특정한 목적을 위해 사용할 경우 보통의 워드프로세서같은 곳에서 흔히 사용하는 템플릿 기능이 많이 요구되어 지는데, 이때 사용하는 것입니다.</p>

<p>만약 이 템플릿 기능을 이용해 나만의 템플릿을 만들어 사용하고 싶다면, MT의 템플릿 메뉴로 가서 "FCKeditor Templates" 라는 이름의 인덱스 템플릿을 열고, 거기에 추가/변경해서 저장/리빌딩해주면 됩니다. 이때 그 출력파일명(fcktemplates.xml)은 변경하면 안됩니다. 열어서 그 내용을 대충 보시면, 어려울건 없습니다. 그 신택스는 매우 직관적이므로 한두번 훑어보면 알 수 있으리라 봅니다.</p>

<h5>FCKeditor 스타일</h5>
<img src="http://alogblog.com/movabletype/plugins/images/fck-2.gif" align="left"/>FCKeditor 등과 같은 소위 WYSIWYG에디터의 가장 큰 단점은 바로 폰트의 크기/색상/종류 등을 font태그를 이용해서 마구잡이로 엔트리 내에 하드코딩시킨다는 것입니다. 물론 초보자의 경우엔 별다른 준비없이 간단히 원하는 표현을 즉석에서 사용할 수 있다는 장점으로 작용하지만, 일반적으로는 피해야하는 작성 습관/태그라 할 수 있습니다. 만약 자신이 특정한 표현을 자주 사용한다면 그것을 스타일로 지정해두고, FCKeditor의 스타일 메뉴로 해결하는 것이 좋습니다. 이때 원하는 스타일을 담고 있는 스타일시트는 당연히 FCKeditor에서도 참조하고, 또 실제 출력된 페이지에서도 참조할 것입니다. 이 역할을 MT내에서 쉽게 할 수 있도록 이미 설치과정에서 지겨움을 참고 끝마쳤으므로 실제 사용시엔 그냥 위의 템플릿과 동일한 과정으로 MT의 템플릿 목록에서 "FCKeditor CSS" 와 "FCKeditor CSS Mapping" 템플릿을 열어서 커스터마이징하면 됩니다. 맵핑 파일의 경우에도 마찬가지로 매우 직관적이라 쉽게 그 문법을 이해할 수 있을 것입니다.

<p><br />
<h5>테스트 엔트리 Publishing</h5></p>

<p>이 플러그인에는 HTMLArea에 포함되어 있는 작은 형태의 이모티콘도 같이 넣었습니다. 이런 저런 다양한 아이템을 엔트리에 추가해보고(반드시 하나 이상의 스타일 적용해 볼 것) 그것을 퍼블리싱합니다. 이때 결과 페이지에서 특히 스타일이 FCKeditor상에 나타난 것이랑 같게 적용이 되나를 확인합니다. 이는 설치단계의 8번이랑도 연관이 됩니다. 혹 스타일이 제대로 결과 페이지에 나타나지 않는다면... 위 설치단계를 다시 한번 확인하세요.</p>

<h4>선택적 개인화(customization)</h4>

<h5>FCKeditor 창의 높이</h5>

<p>FCKeditor 창의 높이도 동적으로 변경할 수 있도록 관련 API를 찾아 보았지만 없어서, 대신에 MT의 각 블로그 아래의 플러그인 설정에서 본문/확장문 각각 창의 높이를 설정할 수 있도록 했습니다. 텍스트 포맷팅을 "none이나 Convert Line Break"로 사용시엔 동적으로 변경가능합니다.</p>

<h5>이모티콘</h5>

<p>이모티콘은 특히 W~G에디터에선 쉽고 비교적 자주 사용하는 아이템입니다. 이 이모티콘은 그 특성상 특정한 블로그에 전용하다기 보단, MT인스턴스로 생성한 모든 블로그에 공통된 자원입니다. 일단 기본으로 위의 설치 과정을 따르면 (path/to/mt)/mt-static/FCKeditor/emoticons/ 폴더 아래에 이모티콘 파일들이 존재합니다. 만약 여러분의 MT설치 특성상 그 설치 경로가 꽤 깊거나 혹은 이미 기존의 다른 폴더를 공통의 이미지파일 폴더로 사용하고 있어서 이를 계속 유지하고 싶은 경우에 이를 설정해 줄 수 있습니다. 먼저 위 디폴트 경로 아래에 있는 파일들을 원하는 다른 곳에 옮긴 후에 그 변경된 경로를 MT의 "System Overview"내의 플러그인 설정란에서 지정해주면 됩니다.(이모티콘은 모든 블로그에 공통된 자원이기 때문에, 이 경로설정을 개개의 블로그밑이 아닌 시스템밑의 플러그인 설정란에서 하는 것입니다.)</p>

<h5>UserFiles</h5>

<p>"UserFiles"이라는 이름은 FCKeditor에서 디폴트로 사용하는 폴더명입니다. 이 폴더 밑에 File,Image,Flash등의 서브 폴더가 생기고 그 각각의 아래에 해당 파일들을 업로드하는 식입니다. 위의 설치과정을 따르면 이 경로가 "path/to/mt/mt-static/FCKeditor/UserFiles/"로 됩니다. 이 의미는 무엇일까요? 하나의 MT인스턴스로 생성한 모든 블로그가 공통된 저 경로밑에 파일들을 업로드하고 관리한다는 소립니다. 머 그렇게 사용할 수도 있겠지만, 또 다른 경우에는 각각의 블로그마다 각기 다른 곳(이를테면 바로 각각의 블로그 루트 경로 아래에)에 UserFiles폴더를 두고 각기 독자적으로 관리하고 싶은 경우가 왜 없겠습니까? 이럴땐 마찬가지로 원하는 폴더를 만들어 주고(꼭  UserFiles라는 이름일 필요도 당연히 없겠죠, 다만 관례상 그런 이름을 사용하면 차후에라도 이 폴더가 FCKeditor랑 관련있는 거구나...정도 할순 있겠죠) 그 경로를 MT메뉴의 플러그인 설정란에서 해주면 됩니다. 당연히 이 경로는 블로그마다 설정해주는 개념이므로 각 블로그밑의 플러그인 설정페이지로 가야 되겠죠?</p>

<h5>FCKeditor의 툴바 등 기타 변경</h5>

<p>이미 에디터의 툴바를 제가 적절히 커스터마이징해서 배포하고 있지만, 사람 취향이 제각각, 분명 난 다르게 툴바를 배치/선택하고 싶다!라는 생각이 없을수 없겠죠. 만약 그런 위험한(^^) 생각을 하셨다면 (mt home)/alt-tmpl/cms/header.tmpl 파일 내에서 적절한 키워드로 찾아서 수정하시면 됩니다. </p>

<p>예를 들면, 폰트 종류/크기 등의 메뉴를 좀더 다양하게 늘려주고 싶다는 생각은 누구나 본능적으로 하게 될거라 봅니다. 버뜨! 참으세요. 앞서 말씀드렸다시파, font태그를 지저분하게(?) 삽입하는 것은 배보다 배꼽이 더 큰 불량 엔트리로 가는 길이기 때문입니다. 가능하다면 자주 사용하는 스타일을 MT템플릿상에서 간편히 만들어 효율적으로 사용하십시요. 이 방법만이 차후에 업데이트 혹은 이런 저런 이유로 재설치시 등마다, 또 다시 FCKeditor 소스를 침투해서 방황하는 무모한 짓을 번번히 되풀이 하지 않는 유일한 길입니다. 그럼에도 불구하고(^^;;;) 초심자를 위해 폰트의 종류/크기 등을 변경하고 싶다면 그 또한 타당성이 있어보입니다. 혹 그런 경우엔 앞선 header.tmpl 파일과 (mt home)/mt-static/FCKeditor/ 폴더 밑의 소스를 뒤져서 헤쳐나가시면 됩니다.</p>

<p>FCKeditor의 source/config 레벨에서 좀더 특화된 customization을 감행하실 경우엔 충분한 지식을 가지고 하시길 바람니다. 또한 그로 인한 어떤 문제에 대해 저에게 도움을 요청하진 말아 주십시요.^^</p>

<h4>Trobuleshooting</h4>

<ul>
<li>FCKeditor를 플러그인화하면서 종종 에디터가 나타나지 않는 등의 문제가 생겼는데 그런 원인의 대부분이 바로 클라이언트측의 브라우져 환경에 기인하는 것이었습니다. 특히 <strong>팝업 필터</strong>같은 것을 요즘엔 많이 사용하는데 이것이 FCKeditor의 생성, 미디어 브라우져의 착동 방해 등의 주요원인입니다. 혹 그런 경우에는 필터를 끄거나 혹은 예외목록등을 이용하십시요.</li>
<li>만약 FCKeditor의 브라우져를 원할히 사용할 수 없는 경우의 태반은 앞선 UserFiles/ 폴더 이하 서브폴더 등의 생성/저장 등의 권한 부족문제입니다.</li>
<li>혹 Firefox/Mozillar 에서 엔트리 저장시 공백 페이지만 나타나고, 원 엔트리 작성 페이지로 돌아오지 않는 경우가 생기는 재수없는(^^) 경우를 겪을 수도 있습니다. 이의 직접적인 원인제공 소스는 잘 모르지만, 확실한 것은 MT의 리다이렉션 방법 때문이라는 것입니다. 물론 디폴트 상태의 MT에서는 문제가 없습니다. 대부분이 HTTP의 Location헤더 방법으로 리다이렉션하기 때문입니다. 그런데 만약 설치한 어떤 플러그인이나 기타 원인으로 리다이렉션을 HTML의 META 태그를 이용해 하는 경우에, Firefox + FCKeditor의 환상적 조합에서 약간의 불협화음을 낸다고 합니다. 이런 재수없는 경우가 혹 발생시엔, 이런 점을 중점으로 먼저 설치한 플러그인을 불활성시켜보는 등의 방법으로 공략하십시요. 특히 제가 만든 Cool IRI라는 매우 훌륭한(?) 플러그인이  바로 그 재수없는 케이스를 발생시켰었습니다. 혹 구버전을 쓰셨던 분중에 FCKeditor를 Firefox상에서 사용하실 분들은 신버전으로 업데이트하십시요. 일반적으로 흔치 않은 에러입니다.</li>
</ul>

<h4>Notes</h4>

<p>앞서도 약간 말씀드렸다시피 FCKeditor의 기능에 대한 문의나 그 자체의 에러 등은 제 능력 밖이라는 말씀을 드립니다. 특히나 FCKeditor를 제가 제공한 기능 외에 한층 커스터마이징을 시키는 등에서 발생하는 문제는 더더욱 그러합니다. 물론 제가 공개/배포한 범위 내에서의 문제에 대해선 얼마든지 환영입니다. 이를테면, "Entry Body에서의 FCK는 잘 작동하는데 Extended Entry의 창에서 이런 저런 놈은 저런 이런 문제를 발생시킨다. 왜 그런가? (답: 새 컴퓨터를 구입하세요)" 라는 것이 전형적인 이 플러그인 관련한 질문의 한 예일 것입니다. FCKeditor 등의 W~G 에디터 프로그램은 매우 매우 복잡한 프로그램이면서 특히나 브라우져의 특성에 매우 민감한 것입니다. 이 플러그인을 만들면