Movable Type 備忘録
MT-Cumulus プラグインで最近のタグを表示
- Prev Page: MailForm プラグインを jQuery 化する
- Next Page: ブログ記事別コメントフィード作成
こんばんわ^^
以前、フラッシュを使って 3D 空間に回転するタグクラウドってのをご紹介したことがありました。
しばらくはわたしのサイトでもサンプルとして使ってましたが、1 週間ほどで取り外しました。
というのも、見た目はすっごくいいと思うのですが一覧されるタグクラウドがポピュラーなタグ( 使用回数の多いタグ )が表示されてしまうので、過去に多かったタグなどがずっと表示されるなどわたし的にはちょと気に入らなかった為です。
なので、今回プラグインをカスタマイズして最近の使われたタグを表示できるようにしてみました。( たぶんできてると思う )
ダウンロード
使い方
基本的な使い方は今まで通りなので、上記ページを参考にして頂けたらと思います。
ここでは「最近のタグ」を表示するための設定について記しますね ( ̄∇ ̄)b
右図はわたしのサイトで設定してる、MT-Cumulus プラグインの設定内容です。
図を見てもらえば分かるように、下の方にある「Tags Only(Recent Tags)」を選択した場合「最近のタグ」によるタグクラウドが表示されます。
変更したら再構築すれば完了です ( ̄∇ ̄)b カンタンですね。
変更点
オリジナルからの変更点は、plugins/lib/Cumulus.pm ファイルを変更しました。
以下にその内容を抜粋します。
81 ~ 104 行目追加
sub recent_tags {my ($blogId, $numberoftags) = @_;my $type = MT::Entry->datasource;my @tags = MT::Tag->load_by_datasource( $type, { 'is_private' => 0, 'blog_id' => $blogId }, );my (@out, @top);for my $tag (@tags) {my ($e) = MT::Entry->load(undef, {sort => 'created_on', direction => 'descend', status => MT::Entry::RELEASE(), limit => 1,join => [ 'MT::ObjectTag', 'object_id',{ tag_id => $tag->id, blog_id => $blogId, object_datasource => MT::Entry->datasource, },{ unique => 1, } ]})or next;my $count = MT::Entry->count({ blog_id => $blogId, status => MT::Entry::RELEASE() },{ join => [ 'MT::ObjectTag', 'object_id', { tag_id => $tag->id, object_datasource => $type }], unique => 1 });push @top, [ $tag->name, $count, $e->created_on ];}@top = sort { $b->[2] <=> $a->[2] } @top;return [ @top[ 0 .. $numberoftags ] ];}
上記はブログ内のすべてのタグから最近使用されたタグを抽出してソートするコードです。
112 ~ 114 行目変更
my $tagcloudtags = ($cumulusDisplay eq "ptags")? &popular_tags($blogId, $numberoftags): &recent_tags($blogId, $numberoftags);
上記は上記図の設定画面で選択された表示方法に合わせてタグ一覧を作成する関数を振り分けるコードです。
201 行目と 233 行目変更
if ($cumulusDisplay =~ m/.tags/) {
上記は「Popular Tags」または「Recent Tags」のいずれかが選択されたかどうかをチェックするコードです。
同様の修正を 233 行目で行ってます。
378 行目追加
<input type="radio" name="Cumulus_display" id="Cumulus_display" value="ptags" <TMPL_IF NAME=Cumulus_display eq=ptags>checked="checked"</TMPL_IF> /> Tags Only(Popular Tags)<br/><input type="radio" name="Cumulus_display" id="Cumulus_display" value="rtags" <TMPL_IF NAME=Cumulus_display eq=rtags>checked="checked"</TMPL_IF> /> Tags Only(Recent Tags)<br/><input type="radio" name="Cumulus_display" id="Cumulus_display" value="cats" <TMPL_IF NAME=Cumulus_display eq=cats>checked="checked"</TMPL_IF> /> Categories Only<br/>
上記はプラグイン設定画面で表示する、ラジオボタン表示のコードです。
「Popular Tags」を 'ptags'、「Recent Tags」を 'rtags' という値に変更してます。
以上です。
良かったら使ってみてください。
Trackback Pings(0)
No trackbacks found.





こんにちわ!とってもお久しぶりです!
その節はお世話になりました。
3D なタグクラウドは以前から気になっていまして、
さっそく使わせていただきました!カッコいいです☆
今後もちょくちょく顔を出させていただきますので
またよろしくお願いします!
>>1 ソープ さん
こんばんわ^^
ホントご無沙汰ですね
気に入っていただけてよかったです。
今後ともどうぞよしなに
bzbellさん、こんにちは。
毎度お世話になります。
こちらのサイトを見ながら、色々とカスタマイズをさせていただいてます。
さっそくなんですが、このプラグインが格好良くて導入したのですが、
「Ajax によるタグ検索にカスタマイズした MT-Cumulus プラグイン」
じゃないと、旨く表示(リンク)出来ないことは、読ませていただきました。
当方も同じ症状でして、プラグインを私にもお裾分けいただけないでしょうか?
ぶしつけなお願いですが、よろしくお願いいたします。
>>3 綾波 さん
こんにちわ^^
先ほど 綾波 さん宅にメルしました。
MT-Cumulus を添付してますのでご確認頂けたらと思います
今後ともどうぞよしなに
>>4 bzbell さん
早急な対応ありがとうございます。
さっそく、設置してみました。
表示&リンクもバッチリです( ^-^ )
自分でゴソゴソと試してはみたのですが、うまくいかず・・・・
お忙しい中、ありがとうございました。