まいう〜の鮹語録でタグ「タグクラウド」が付けられているもの

おぉぉ!これはフォローしとかねばならんですばい。

先日「MT4分からんことだらけ」という記事で新着順のタグクラウドについて言及しましたが、何でもプラグインを使わずに新着順タグクラウドを作る方法があるらしい?

先日も紹介させてもらいました「Movable Type備忘録」と、Movable Type公式ブログからの記事。どちらも「ハッシュ変数を使って」とあるけど、全く方法が違うのが面白いですね。はてどちらがいいものか?プログラムを解読せねばならんなぁ…と、悩んでおりました。

あらかじめ申しておきます、当方プログラミングについてはズブの素人です。全く経験なしですよ。まずハッシュ変数とは何ぞや?というところから、サパーリ分からん…両方の解説文を熟読してみても、何となく分かったような分からないような?…うををを、頭が痛いぞ。。

とりあえずテスト用のテンプレートを作って動かしながら弄ってみたら、何とかなるか?なったか?ということで、上記2記事のタグクラウドを自分用にカスタマイズしたものを貼っておきます。詳しい仕様はこちら↓

  • 全ての記事で使われているタグの中から、30件を新着記事順に表示。
  • スタイルシートはMovable Typeデフォルトのテーマ(minimalist-なんちゃら)に準処。
  • サイドバーに表示するウィジェットとして作成。これもMovable Typeデフォルトに準処。

まずは「Movable Type備忘録」の記事を参考にした物から。

<div class="widget-tag-cloud widget">
    <h3 class="widget-header">タグクラウド</h3>
    <div class="widget-content">
<MTTags>
    <MTSetVarBlock name="tags"><$MTTagName$></MTSetVarBlock>
    <MTSetVarBlock name="sorthash" key="$tags"><$MTTagLastUpdated format="%Y%m%d%H%M%S"$></MTSetVarBlock>
    <MTSetVarBlock name="tag_count" key="$tags"><$MTTagCount$></MTSetVarBlock>
    <MTSetVarBlock name="tag_rank" key="$tags"><$MTTagRank max="10"$></MTSetVarBlock>
    <MTSetVarBlock name="tag_date" key="$tags"><$MTTagLastUpdated format="%Y-%m-%d"$></MTSetVarBlock>
    <MTSetVarBlock name="tag_link" key="$tags"><$MTTagSearchLink$></MTSetVarBlock>
</MTTags>
<ul class="widget-list">
<MTLoop name="sorthash" sort_by="value numeric reverse">
    <MTIf name="__counter__" le="30">
        <li class="rank-<MTGetVar name="tag_rank" key="$__key__"> widget-list-item" 
            title="<MTGetVar name="__key__">:<MTGetVar name="tag_count" key="$__key__">:<MTGetVar name="tag_date" key="$__key__">">
            <a href="<MTGetVar name="tag_link" key="$__key__">"><MTGetVar name="__key__"></a></li>
    </MTIf>
</MTLoop>
</ul>
   </div>
</div>

<MTTagLastUpdated>タグがあるので、TagSupplementalsプラグインは必要のようですね。このテンプレート・タグと元記事の丁寧な解説のおかげで、何とか構造を把握することが出来ましたですm(_ _)m

サイドバー・ウィジェットの仕様に合わせてスタイルを変更、ヘッダーを追加。それから元記事のソースにはタグ検索のリンクが機能しないという不具合がありました。<MTTags>タグの外側で<$MTTagSearchLink$>が使われているのが原因のようなので、新しいハッシュ変数tag_link{tags}を設定しています。

当ブログ・2008年2月8日現在における表示結果は以下↓

続いてMovable Type公式ブログの物から。

<div class="widget-tag-cloud widget">
    <h3 class="widget-header">タグクラウド</h3>
    <div class="widget-content">
<MTSetVar name="i" value="30">
<MTEntries lastn="0">
<MTEntryTags>
    <$MTTagName setvar="tagname"$>
        <MTUnless name="seen" key="$tagname">
        <MTIf name="i" gt="0">
            <MTSetVar name="i" op="--">
            <MTSetVar name="seen" key="$tagname" value="1">
            <MTSetVarBlock name="push(tag_htmls)"><li class="rank-<$mt:TagRank max="10"$> widget-list-item"><a href="<$mt:TagSearchLink$>"><$mt:TagName$></a></li></MTSetVarBlock>
        </MTIf>
        </MTUnless>
    </MTEntryTags>
    </MTEntries>
       <ul class="widget-list">
        <MTLoop name="tag_htmls">
            <MTVar name="__value__">
        </MTLoop>
       </ul>
   </div>
</div>

最新10記事ではなく全記事を対象にするためには、5行目MTEntriesのモディファイアlastn"0"にするといいみたいです。本当は正しくない記述らしいけどね…。

上記ソースの表示結果↓

「備忘録」の物と公式ブログの物で表示順序が微妙に異なるのは、前者は<MTTagLastUpdated>で新しく追加されたタグが上位に来るようになっているのに対し、後者は記事の日付のみでソートしているからだと思います。厳密な「新着順」という意味では前者の方が正しいんだけど、個人的にはどっちでもいいや。

ところで公式ブログのソースで、どーうも私の頭では理解出来ない部分があるんですよ。タグのリストを出力するところで、<MTLoop>が使われているのはなぜか?変数tag_htmlspushで追記しているから、tag_htmlsには表示するタグリストが全て格納されているのではないか?それともtag_htmlsはハッシュ変数なのか?ということです。そこで試しに18〜20行目

        <MTLoop name="tag_htmls">
            <MTVar name="__value__">
        </MTLoop>

            <MTVar name="tag_htmls">

に置き換えてみたら

ありゃ?表示されるタグの数が増えてるぞ!?…こればっかりは分からんです。プログラム素人には、全くもって理解不能…MTのテンプレートって、奥が深いなぁ。

この土日はリニューアルした当ブログを弄ってました。テンプレート・タグやらCSSやらと格闘しながら、デザインを調整したりサイドバーに入れるパーツを追加したりしてたんだけども、あっという間に時間が過ぎるね。キリがない。え?でもタイトルに「MT4分かからんことだけ」って書いてあるじゃん?違う違う、4分で出来るわけがないよ。大体「MT4分」までは分かるとして「からんことだらけ」って何だ?…「この先生きのこる」みたいになっちまいましたが(笑)とにかく「分からんことだらけ」ですわ。

タグの付け方が分からん

今回のリニューアルの目的の一つに、タグを使えるようにするってのがあったんですよ。記事数が増えてきたから、うまいこと分類してピャーッと飛べるようにしたいなぁ、と。メイリオの記事以来お世話になっているシカゴさんところとか、タグをうまく活用して関連記事のリンクを貼ったりしてるしね。それからタグクラウドという物を作ってみたい!(これもドツボったので後述)…実はタグの機能自体はMT3.3からあったけど、どっちみちテンプレートの総取っ替えになるんで、今回一気にやっちゃいました!

とりあえず過去記事の中で注目度の高そうな物(アクセスログの検索ワードから推測)から、ボチボチとタグを設定しております…が!どんな単語を入れればいいのか、今一つ分からん。。カテゴリとの使い分けとかね…多分カテゴリで大まかに分類した後、例えば「メイリオ」「Advanced/W-ZERO3[es]」「EOS 40D」みたいな具体的なキーワードをタグに設定するって使い方でいいと思うんだけど。過去記事はともかく、これから書く物については今後関連記事が増えるかどうか?という点も考慮せんといかんのか…まだまだ試行錯誤中です。

しかし改めて過去記事をざっと見渡してみたら、昔はいい記事書いてたなぁ…あれ?ちょっと前に古いサイトを弄った時にも、同じような経験をしたぞ。たまにはこういう作業も必要かもしれませんね。うんこちんちん。(温故知新)

管理画面が分からん

ってか、重いぞ!!JavaScriptやらAjaxやら?でかなり凝った作りになっているみたいで、PCでは問題なく表示出来るものの、アドエスだとうまくいかない!Operaで記事作成画面を開くと必ず落ちるし(強制終了)IE Mobileは表示が崩れまくってわけわかめ状態…参ったなぁ。出先で更新することは滅多にないんだけど、一応出来るようにしたいんですよ。とりあえず

こちら↑の記事を参考に、iPhone/iPod touch用のプラグインに手を加えて導入してみたんだけど…これって「記事作成」「記事の管理」「コメントの管理」の3つしか機能がないんだね。トラックバックの管理や写真のアップロードは出来ないのかぁ…だいぶ前に一度だけ、京ぽんで写真付きの記事を書いたことがあるんですよ。アドエスで同じことが出来ないのは、つらいなぁ。

そこで試しにNetFrontを入れてみたら、何とか通常の管理画面が表示出来るっぽい?…むちゃくちゃ重いけどね。どうしても必要な時はこれを使おうかと思ってます。

ところでダッシュボードの表示設定はどこに保存されてるんだ?ブログテンプレートみたいにカスタマイズ出来ないのか?…あまり弄らない方がいいか。

タグクラウドが分からん

あぁタグクラウド、憧れのタグクラウド!?…ブログ全体の内容やトピックスが一目で分かって、なんかカッコええやん?

しかしMovable Typeに付属するタグクラウド(正確にはテンプレートタグ)は、どうも気が利かないのね。まず上位から30件、あるいは50件等と設定して表示させるんだけども、タグの名前順だと常に表示されないタグが出てくるし、使用頻度順だと文字の大きさが大→小となってつまらない…記事が新しい物から順番に並べたいんですよ。つまり具体的な話、<MTTags>のsort_byモディファイアがおかしいんです(→タグリファレンスidは記事じゃなくてタグが新しい順になるし、modified_onはどうやら機能してないっぽい…どうしたものか。

2008/02/17追記:modified_onはタグ自身の更新順(って何じゃそりゃ?)になるみたいです。どっちにしても意味無しですな!?

と思ってたら、同じ悩みを持っている?方が見つかりましたよ。

なるほどー、プラグインの組み合わせで解決するのか…ちょっと難しそうだけど、今度やってみよう。このMovable Type備忘録ってサイト、カスタマイズ法がいろいろ載っていて参考になりますね。ブックマークしますた!

おまけ…Mac版IEの表示が分からん

今では使っている人は少ないと思われる、しかしMacOS X 10.1以前の環境(MacOS 9も含む)にとっては重要なブラウザ、Internet Explorer 5(バージョン5.2.3)で当ブログを表示させた画像を貼っておきます。(クリックで拡大)

あれ?何か記事タイトルのあたりが変ですよ?MacIEだけがこんな表示になるんで、専用の設定があるのかと思ってCSSを調べたが、そんな記述は見つからず。どうなってるんだ?…まぁ見られるから良しとするか。最早アップルのサイトもMacIEではマトモに表示されない状態ですからね、、ホントMacは切り捨てが早いわ。。

以上、4分かからん…じゃなかった、分からんことだらけリストでした。

タグ

アーカイブ

Powered by Movable Type 4.27-ja