はてなブックマーク/del.icio.us/Livedoor clipの被ブックマーク数を表示するプラグイン(Movable Type 3.3用・その4)

「はてなブックマーク/del.icio.us/Livedoor clipの被ブックマーク数を表示するプラグイン」では、Blog全体の被ブックマーク数を表示することもできます。
今日はその方法を解説します。

1.Blog全体の被ブックマーク数を表示するテンプレートタグ

Blog全体の被ブックマーク数は、以下のテンプレートタグで表示することができます。

テンプレートタグ内容
MTBlogHatenaBookmarkCountはてなブックマークでの被ブックマーク数を表示します。
MTBlogDeliciousBookmarkCountdel.icio.usでの被ブックマーク数を表示します。
MTBlogLivedoorBookmarkCountLivedoor clipでの被ブックマーク数を表示します。

はてなブックマークでは、特定のサイトの被ブックマーク数を取得するためのAPIがありますので、それを利用しています。
はてなブックマークのサービスに、「はてなブックマークカウンター」(Blog全体の被ブックマーク数を画像で表示する機能)がありますが、それと同じ数値ガ出力されます。
一方、del.icio.usとLivedoor clipにはそのようなAPIはありませんので、プラグイン内部で被ブックマーク数を集計するようにしています。

2.静的に表示する

エントリーごとの被ブックマーク数は、静的にも動的にも表示することができました。
それと同様に、Blog全体の被ブックマーク数も、静的にも動的にも表示することができます。

静的に表示する場合は、前述したタグを組み合わせて、テンプレートの中で被ブックマーク数を表示したい位置に入れます。
例えば、Movable Typeの標準テンプレートの場合だと、サイドバーに以下のようなタグを入れれば、Blog全体の被ブックマーク数を表示することができます。

<div class="module-bookmark-count module">
   <h2 class="module-header">被ブックマーク数</h2>
   <div class="module-content">
      <ul class="module-list">
         <li class="module-list-item">はてなブックマーク:<$MTBlogHatenaBookmarkCount$></li>
         <li class="module-list-item">del.icio.us:<$MTBlogDeliciousBookmarkCount$></li>
         <li class="module-list-item">Livedoor clip:<$MTBlogLivedoorBookmarkCount$></li>
      </ul>
   </div>
</div>

メインページのテンプレートに、このような部分を入れておくと良いでしょう。
これ以後は、被ブックマーク数の手動取得(1月2日のエントリーを参照)を行った後で、メインページを再構築すれば、その時点でのBlog全体の被ブックマーク数が表示されるようになります。

3.動的に表示する

Blog全体の被ブックマーク数を動的に表示することもできます。
作業の手順は、昨日のエントリーとほぼ同じです。

まず、テンプレート・モジュールを新規作成し、その名前を「Bookmark Count(Blog全体)」にします。

次に、Blog全体の被ブックマーク数を表示するためのテンプレート・モジュールを作ります。
前述のタグのほかに、「MTBlogGetHatenaBookmarkCount」というタグを入れます。
このタグは、はてなブックマークでのBlog全体の被ブックマーク数を取得する働きをします。
例えば、Movable Typeの標準のテンプレートの場合、テンプレート・モジュールを以下のようにします。

<$MTBlogGetHatenaBookmarkCount$>
<li class="module-list-item">はてなブックマーク:<$MTBlogHatenaBookmarkCount$></li>
<li class="module-list-item">del.icio.us:<$MTBlogDeliciousBookmarkCount$></li>
<li class="module-list-item">Livedoor clip:<$MTBlogLivedoorBookmarkCount$></li>

テンプレート・モジュールの入力が終わったら、それを保存します。
そして、そのテンプレート・モジュールのリアルタイム再構築を許可しておきます(手順は1月5日のエントリーを参照)。

次に、メインページのテンプレートに、被ブックマーク数を表示するための部分と、AjaxのJavaScriptを入れます。
その内容は、昨日のエントリーとほぼ同様です。
ただし、JavaScriptの5行目を以下のように変えます。

parameters : '<$MTRealtimeRebuildQueryParam tmpl_name="Bookmark Count(Blog全体)" ajax="1"$>',

ここまでが終わったら、メインページのテンプレートを保存して再構築します。
それ以後は、メインページにアクセスがあった時点で、Blog全体の被ブックマーク数が集計されて表示されるようになります。
ただし、MTBlogGetHatenaBookmarkCountタグでは、負荷軽減のために、直前にはてなブックマークのサーバーにアクセスしてから1分以内はアクセスをせずに、キャッシュした値を使うようになっています。