MovableType 3.3부터는 Tag 기능이 기본적으로 내장되어있습니다만 멀티 블로그를 이용하는 경우는 각각의 블로그에 생성된 태그를 한 번에 보일 수 있는 플러그인 같은 게 없습니다. 가령 이 블로그는 메인블로그와 photo블로그, guestbook블로그 이렇게 세 개의 블로그를 생성해서 쓰고 있습니다. 그 특성상 guestbook은 태그 같은 게 필요 없지만 메인블로그와 photo 블로그는 공통된 태그를 가질 수 있습니다. 여러 블로그에서 사용된 태그를 한 자리에서 관리 할 수 있게 만든 코드입니다. 기본정렬이야 ‘가나다’ 순이지만 태그 수순 정렬이나, 최근 n개의 태그만 보이게 할 수도 있습니다. 예제 페이지에서 확인할 수 있습니다.
당연히 두 개 이상의 블로그를 생성해서 쓰는 경우를 위한 것이고, 다만 예제 1의 태그 Cutoff Parameter(created by Ogawa)는 무버블타입뿐만 아니라 어느 블로그 툴에서든 사용할 수 있습니다. (등록된 시간이 지남에 따라 태그의 폰트 색상이 자동으로 바뀐 다던가 카운트 수에 따라서 태그의 폰트 크기가 달라 지는 것 등등을 포함하고 있습니다. )
아마도 멀티블로그 이용자라면 GlobalListing플러그인이나 MultiBlog플러그인을 사용하고 있을 것입니다. 제 경우는 GlobalListing을 사용하고 있기 때문에 그에 맞춰서 코드를 작성했지만, Multiblog 플러그인 이용자도 같은 속성을 가지는 값이 분명히 있으니 그 부분만 바꿔주면 됩니다. 귀찮으면 이참에 GlobalListing도 설치하세요.
1. 필요한 플러그인 - plugin
Globallisting.pl (or MultiBlog)
MTCollate.pl
arithmetic.pl - 이 플러그인을 위해서는 Expressions이 필요합니다.
위의 플러그인들을 mt/plugins 디렉토리에 저장합니다. Expressions는 MT가 설치된 곳/extlib/MTPlugins/Expressions.pm 이렇게 저장됩니다. 각각의 플러그인 페이지에서 그 속성들을 살펴보면 좀 더 입맛에 맞게 표현할 수 있을 것입니다.
2. 기본 코드 - 화면에 나타나는 것이 아니라 이를테면 표현될 태그의 속성을 만들 어 주는 것입니다. 태그가 나타나는 페이지에 꼭 들어가야 하는 코드입니다.
이 코드는 여러 개의 블로그 중에서 blog_id 1과 3에 대해 태그 이름과 날짜 그 태그 카운트를 집계하라는 것입니다. 뭔 소린지 모르겠으면 그대로 사용하시면 됩니다.
중요한 것은 멀티 블로그의 아이디를 꼭 지정해야 합니다.
include_blogs="1"과 include_blogs="3" 이 부분을 수정 해야 합니다. 대부분 메인블로그의 아이디는 1일 테고, 그 외 블로그의 아이디는 movabletype 관리자 페이지에서 마우스 올려보심 알 수 있으니, 그것으로 바꿔줍니다.
3. 최근 사용된 n개의 태그 보여주기 - (예제 2)
2번의 코드 아래 넣어주면 됩니다.
limit="10"은 나타날 수를 조절하는 것입니다.
tag_date:- 의 의미는 태그 정렬을 날짜순으로 하는데 최근 것부터 보인다는 얘기입니다.
-를 +로 바꾸면 등록된 순으로 말하자면 오래된 것부터 나타나게 될 것입니다.
tag_named:d 는 중복돼서 나타나는 태그의 이름은 무시한다는 말입니다. 멀티 블로그 특성상 중복되는 태그 이름은 한 번만 나타나게 하고 그 수는 합치는 것입니다.
<a href="http://antimine.kr/tag/ 이 부분은 자신의 사이트 경로에 맞춰야겠지요. 기본 MT템플릿은 <a href="<$MTTagSearchLink$>" rel="tag"><$MTTagName$></a>게 표현하고 있습니다. 요것을 그대로 이용해도 됩니다만, 링크 주소를 깔끔하게 http://당신홈페이지/tag/태그이름 이런 식으로 나타내고 싶다면 EveryBody loves tags에서 RewriteEngine on 부분을 참고로 .htaccess를 만들면 됩니다.
계속 나오는 링크 경로는 말 안 해도 자신의 사이트로 맞춰야 합니다. =.=
4. 태그의 수가 많은 것부터 정렬 (예제 3)
tag_total_count:- 은 태그의 카운트가 많은 순으로 나타낸다는 뜻입니다. -를 +로 바꾸면 반대가 됩니다.
짐작하셨겠지만 tag_name, tag_total_count, tag_date 같은 이름은 MTCollate플러그인을 이용해서 임의로 그 속성을 만들어 준 것입니다. 그러니깐 이름을 바꿀 수도 그 속성값도 원하는 대로 할 수 있습니다.
5. Cutoff Parameter 이용을 위해 수정해야 하는 부분. (예제 1)
Ogqwa님의 원래의 코드에서 li tilte 값만을 바꿔주면 됩니다. 이 코드의 자바스크립트를 보면 li title 값을 가지고 css가 다르게 적용되는 것을 알 수 있습니다.
원 코드를 보면
<li title="<$MTTagName$>:<$MTTagCount$>:<$MTTagDate format="%Y-%m-%d"$>">게 되어 있습니다.
<li title="태그 이름:태그 개 수:태그 날짜(형태 2007-03-13)"> 이것을 위 2번에서 지정한 새로운 값으로 바꿔주면 됩니다.
즉, <ul id="tags">.......</ul>부분을 다음 코드로 바꿔주면 됩니다.
다른 블로그 툴 사용자도 <li title=“....”> 부분만 수정하면은 그대로 Cutoff Parameter를 이용할 수 있습니다.
외의 css와 자바스트립트 소스는 Ogawa님의 페이지에서 가져다가 붙이면 됩니다. 참고로 css는 <head>...</head>에서 불러들이는 스타일시트에 붙여 넣을 수 있지만 자바스크립트는 꼭 Cutoff Parameter가 사용되는 <ul id="tags">...</ul> 다음에 들어가야 합니다.
예제 페이지에서 본 것처럼 등록된 태그의 날짜에 따라 폰트 색상이 흐려지고 있습니다. 이 날짜의 기준(예를 들자면 60일이 지난 태그는 회색으로, 1년이 지난 태그는 더 흐린 회색으로, 2주가 안 된 것은 파란색으로 등등)은 자바스크립트 소스에서 색은 css에서 지정하면 됩니다.
이상, 두 개 이상의 블로그 사용 시 태그를 한 곳에서 관리할 수 있는 설명이었습니다. 궁금한 점은 코멘트를 이용해 주세요.
당연히 두 개 이상의 블로그를 생성해서 쓰는 경우를 위한 것이고, 다만 예제 1의 태그 Cutoff Parameter(created by Ogawa)는 무버블타입뿐만 아니라 어느 블로그 툴에서든 사용할 수 있습니다. (등록된 시간이 지남에 따라 태그의 폰트 색상이 자동으로 바뀐 다던가 카운트 수에 따라서 태그의 폰트 크기가 달라 지는 것 등등을 포함하고 있습니다. )
아마도 멀티블로그 이용자라면 GlobalListing플러그인이나 MultiBlog플러그인을 사용하고 있을 것입니다. 제 경우는 GlobalListing을 사용하고 있기 때문에 그에 맞춰서 코드를 작성했지만, Multiblog 플러그인 이용자도 같은 속성을 가지는 값이 분명히 있으니 그 부분만 바꿔주면 됩니다. 귀찮으면 이참에 GlobalListing도 설치하세요.
1. 필요한 플러그인 - plugin
Globallisting.pl (or MultiBlog)
MTCollate.pl
arithmetic.pl - 이 플러그인을 위해서는 Expressions이 필요합니다.
위의 플러그인들을 mt/plugins 디렉토리에 저장합니다. Expressions는 MT가 설치된 곳/extlib/MTPlugins/Expressions.pm 이렇게 저장됩니다. 각각의 플러그인 페이지에서 그 속성들을 살펴보면 좀 더 입맛에 맞게 표현할 수 있을 것입니다.
2. 기본 코드 - 화면에 나타나는 것이 아니라 이를테면 표현될 태그의 속성을 만들 어 주는 것입니다. 태그가 나타나는 페이지에 꼭 들어가야 하는 코드입니다.
<MTCollateCollect>
<MTGlobalEntries lastn="99999">
<MTEntryTags>
<MTCollateRecord>
<MTCollateSetField name="tag_name"><$MTTagName$></MTCollateSetField>
<MTCollateSetField name="tag_date"><$MTEntryDate format="%Y-%m-%d"$></MTCollateSetField>
<MTCollateSetField name="tag_count_1"><MTGlobalEntries include_blogs="1" lastn="1"><$MTTagCount$></MTGlobalEntries></MTCollateSetField>
<MTCollateSetField name="tag_count_3"><MTGlobalEntries include_blogs="3" lastn="1"><$MTTagCount$></MTGlobalEntries></MTCollateSetField>
<MTSetVar2 name="count" value="[MTCollateField name='tag_count_1']">
<MTAddVar name="count" value="[MTCollateField name='tag_count_3']">
<MTCollateSetField name="tag_total_count">
<MTGetVar2 name="count"></MTCollateSetField>
</MTCollateRecord>
</MTEntryTags>
</MTGlobalEntries>
</MTCollateCollect>
<MTGlobalEntries lastn="99999">
<MTEntryTags>
<MTCollateRecord>
<MTCollateSetField name="tag_name"><$MTTagName$></MTCollateSetField>
<MTCollateSetField name="tag_date"><$MTEntryDate format="%Y-%m-%d"$></MTCollateSetField>
<MTCollateSetField name="tag_count_1"><MTGlobalEntries include_blogs="1" lastn="1"><$MTTagCount$></MTGlobalEntries></MTCollateSetField>
<MTCollateSetField name="tag_count_3"><MTGlobalEntries include_blogs="3" lastn="1"><$MTTagCount$></MTGlobalEntries></MTCollateSetField>
<MTSetVar2 name="count" value="[MTCollateField name='tag_count_1']">
<MTAddVar name="count" value="[MTCollateField name='tag_count_3']">
<MTCollateSetField name="tag_total_count">
<MTGetVar2 name="count"></MTCollateSetField>
</MTCollateRecord>
</MTEntryTags>
</MTGlobalEntries>
</MTCollateCollect>
이 코드는 여러 개의 블로그 중에서 blog_id 1과 3에 대해 태그 이름과 날짜 그 태그 카운트를 집계하라는 것입니다. 뭔 소린지 모르겠으면 그대로 사용하시면 됩니다.
중요한 것은 멀티 블로그의 아이디를 꼭 지정해야 합니다.
include_blogs="1"과 include_blogs="3" 이 부분을 수정 해야 합니다. 대부분 메인블로그의 아이디는 1일 테고, 그 외 블로그의 아이디는 movabletype 관리자 페이지에서 마우스 올려보심 알 수 있으니, 그것으로 바꿔줍니다.
3. 최근 사용된 n개의 태그 보여주기 - (예제 2)
<ul style="list-style-type: decimal;">
<MTCollateList sort="tag_date:- tag_name:d" limit="10">
<MTCollateIfHeader name="tag_name">
<li>
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$> ( <$MTCollateField name="tag_total_count"$> )</a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
<MTCollateList sort="tag_date:- tag_name:d" limit="10">
<MTCollateIfHeader name="tag_name">
<li>
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$> ( <$MTCollateField name="tag_total_count"$> )</a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
2번의 코드 아래 넣어주면 됩니다.
limit="10"은 나타날 수를 조절하는 것입니다.
tag_date:- 의 의미는 태그 정렬을 날짜순으로 하는데 최근 것부터 보인다는 얘기입니다.
-를 +로 바꾸면 등록된 순으로 말하자면 오래된 것부터 나타나게 될 것입니다.
tag_named:d 는 중복돼서 나타나는 태그의 이름은 무시한다는 말입니다. 멀티 블로그 특성상 중복되는 태그 이름은 한 번만 나타나게 하고 그 수는 합치는 것입니다.
<a href="http://antimine.kr/tag/ 이 부분은 자신의 사이트 경로에 맞춰야겠지요. 기본 MT템플릿은 <a href="<$MTTagSearchLink$>" rel="tag"><$MTTagName$></a>게 표현하고 있습니다. 요것을 그대로 이용해도 됩니다만, 링크 주소를 깔끔하게 http://당신홈페이지/tag/태그이름 이런 식으로 나타내고 싶다면 EveryBody loves tags에서 RewriteEngine on 부분을 참고로 .htaccess를 만들면 됩니다.
계속 나오는 링크 경로는 말 안 해도 자신의 사이트로 맞춰야 합니다. =.=
4. 태그의 수가 많은 것부터 정렬 (예제 3)
<ul>
<MTCollateList sort="tag_total_count:#:- tag_name:d">
<MTCollateIfHeader name="tag_name">
<li>
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$> ( <$MTCollateField name="tag_total_count"$> )</a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
<MTCollateList sort="tag_total_count:#:- tag_name:d">
<MTCollateIfHeader name="tag_name">
<li>
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$> ( <$MTCollateField name="tag_total_count"$> )</a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
tag_total_count:- 은 태그의 카운트가 많은 순으로 나타낸다는 뜻입니다. -를 +로 바꾸면 반대가 됩니다.
짐작하셨겠지만 tag_name, tag_total_count, tag_date 같은 이름은 MTCollate플러그인을 이용해서 임의로 그 속성을 만들어 준 것입니다. 그러니깐 이름을 바꿀 수도 그 속성값도 원하는 대로 할 수 있습니다.
5. Cutoff Parameter 이용을 위해 수정해야 하는 부분. (예제 1)
Ogqwa님의 원래의 코드에서 li tilte 값만을 바꿔주면 됩니다. 이 코드의 자바스크립트를 보면 li title 값을 가지고 css가 다르게 적용되는 것을 알 수 있습니다.
원 코드를 보면
<li title="<$MTTagName$>:<$MTTagCount$>:<$MTTagDate format="%Y-%m-%d"$>">게 되어 있습니다.
<li title="태그 이름:태그 개 수:태그 날짜(형태 2007-03-13)"> 이것을 위 2번에서 지정한 새로운 값으로 바꿔주면 됩니다.
즉, <ul id="tags">.......</ul>부분을 다음 코드로 바꿔주면 됩니다.
<ul id="tags">
<MTCollateList sort="tag_name">
<MTCollateIfHeader name="tag_name">
<li title="<$MTCollateField name="tag_name"$>:<$MTCollateField name="tag_total_count"$>:<$MTCollateField name="tag_date"$>">
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>" title="Tag: <$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$></a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
<MTCollateList sort="tag_name">
<MTCollateIfHeader name="tag_name">
<li title="<$MTCollateField name="tag_name"$>:<$MTCollateField name="tag_total_count"$>:<$MTCollateField name="tag_date"$>">
<a href="http://antimine.kr/tag/<$MTCollateField name="tag_name"$>" title="Tag: <$MTCollateField name="tag_name"$>"><$MTCollateField name="tag_name"$></a>
</li>
</MTCollateIfHeader>
</MTCollateList>
</ul>
다른 블로그 툴 사용자도 <li title=“....”> 부분만 수정하면은 그대로 Cutoff Parameter를 이용할 수 있습니다.
외의 css와 자바스트립트 소스는 Ogawa님의 페이지에서 가져다가 붙이면 됩니다. 참고로 css는 <head>...</head>에서 불러들이는 스타일시트에 붙여 넣을 수 있지만 자바스크립트는 꼭 Cutoff Parameter가 사용되는 <ul id="tags">...</ul> 다음에 들어가야 합니다.
예제 페이지에서 본 것처럼 등록된 태그의 날짜에 따라 폰트 색상이 흐려지고 있습니다. 이 날짜의 기준(예를 들자면 60일이 지난 태그는 회색으로, 1년이 지난 태그는 더 흐린 회색으로, 2주가 안 된 것은 파란색으로 등등)은 자바스크립트 소스에서 색은 css에서 지정하면 됩니다.
이상, 두 개 이상의 블로그 사용 시 태그를 한 곳에서 관리할 수 있는 설명이었습니다. 궁금한 점은 코멘트를 이용해 주세요.












awesome!