2007/11/25 ソースに間違いが見つかりましたので変更させていただきました。

<MTCollateList limit="1" sort="tag_count:#:+">
<MTCollateList limit="1" sort="tag_count:#:-">

タグクラウド、いい!実にいい!!
しかーし、タグクラウドの見せ方なのですが、一つ問題がありまして、文字サイズは出現回数が増えれば増えただけ際限なく大きくなっていってしまいます。
そんな中、Open MagicVox.netさんのTagCloudをJavaScriptでパワーアップという記事に解決策がありました。

タグの使用回数の最大値と最小値を基にして、使用頻度が最も少ないタグのフォントサイズを size_min に、使用頻度が最も多いタグのフォントサイズを size_max に線形補間しています。

とありこれがぴったりなので早速導入する事に、しかしながらこちらはTagwireプラグインを使う事が前提になっていますのでそのままでは使えません。
何がだめかというと、タグの使用回数の最大値、最小値を引っ張り出す事ができません。
これを可能にするにはまた別のプラグインが必要になります。

MTCollateプラグインを使う

MTCollateプラグインを使うと、全てのタグの出現回数を引っ張り出しておいてその中から多い方から1番目まで、少ない方から1番目までという少々回りくどい表現になりますが、そういう形で取り出すことができます。
概念やら使い方はあんちもん2.LabさんのMTCollateのススメが詳しくてよいです。
MTCollateプラグインをインストール後テンプレートを書き換えると最大フォントサイズが決まったタグクラウドが出来上がります。
以下参考ソースとなります。
オリジナル(Ogawa::Memorandaさんのタグクラウドテンプレート)を 改造後(Open MagicVox.netさんのテンプレート(改))に書き換えてご利用ください。

// オリジナル(Ogawa::Memorandaさんのタグクラウドテンプレート)
function calcFontSize (count) {
return count / 6 + 12;
}

// 改造後(Open MagicVox.netさんのテンプレート(改))
<MTCollateCollect>
<MTTags>
<MTCollateRecord>
<MTCollateSetField name="tag_count"><$MTTagCount$></MTCollateSetField>
</MTCollateRecord>
</MTTags>
</MTCollateCollect>

// min count of tag appearance (cf. to retrieve with MTTags)
var count_min = <MTCollateList limit="1" sort="tag_count:#:+"><MTCollateField name="tag_count"></MTCollateList>;
// max count of tag appearance (cf. to retrieve with MTTags)
var count_max = <MTCollateList limit="1" sort="tag_count:#:-"><MTCollateField name="tag_count"></MTCollateList>;

function calcFontSize (count) {
var size_min = 12; // min font size on count_max
var size_max = 60; // max font size on count_min
return (size_max – size_min) * (count – count_min) / (count_max – count_min) + size_min;
}

参考にさせていただきました皆様、ありがとうございました。

カテゴリー: MovableType

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

MovableType

iPod Touchから投稿

iPodからの投稿です。 キーボードが小さくてなかなか大変です。 でも 続きを読む …

MovableType

PholiotのxmlをEntryImagesプラグインで作成すると良いですぞ!

エタハーではおなじみの右上に写真がじわじわ動いているブログパーツ、Ph 続きを読む …

MovableType

MTの検索をAjaxで高速化する、さらにタグクラウドもAjaxで表示!

またまたタグクラウド関連なのですが、普通検索もそうですけど、MTの検索 続きを読む …