Movable Type 備忘録

 MultiBlog プラグインの便利な使い方

こんばんわ^^

ネットを徘徊してると、Movable Type 4 を使われてるサイトさんをよくみかけるようになりました。
わたしもだいぶ Movable Type 4 に慣れてきたことだし、お引越し先のサーバも借りたことだし、そろそろ・・・といきたいとこなんですけど、どうも気が乗らないというか、性格的にも気分屋なのでやる気がおきないんですよね、困ったことに (; ̄∇ ̄A はは

単純に MT3.3x から MT4 への移行ってわけじゃないので、なお更でしょうか。
それにドライアイのせいで長い間ディスプレイを見てられないしね。

まぁ、気が向いたら一気に移行しちゃいます。
そそ、たまに先日公開したサンプルサイトへトラックバックされる人がいるのですが、あちらはいずれデータベースのデータを差し替えますので、トラックバックなさらないようお願いします (m;_ _)mペコ
てか、してもいいですが削除されちゃいますのでご了承くださいね♪ コメント投稿テストなどはバンバンいっちゃっても問題なしです!!

さて、今回は Movable Type 4 から標準でインストールされた MultiBlog プラグインの便利な使い方のご紹介です。
便利といってもわたしが使ってる MultiBlog プラグインの使い方なので、すべての人に便利か・・・と言われるとグレーです (; ̄∇ ̄A

MultiBlog プラグインの機能

知ってる人もいるかと思いますが、MultiBlog プラグインの機能ついて説明します。
MultiBlog プラグインは、複数のブログを 1 つのブログに集約して表示することが可能なプラグインです。

たとえば、Movable Type では複数のブログを作成できますね。
ジャンル別にブログを作成して、各ジャンル・ブログで投稿したエントリを、1 つのブログにあたかもそのブログで投稿されたかのように、集約して表示することができます。使いようによってはとっても便利なプラグインです。

去年はわたしもこの機能を使って、テンプレート・カテゴリを別ブログとして運用してました。

デメリットとしては、テンプレート・カテゴリのブログを再構築すると、それに連動してメインブログも再構築されることです。平たくいえば、再構築に時間がかかり過ぎます (´Д`;)
そんな理由から、今は元通りに 1 つのブログで運用してるわけです。

もう 1 つの使い方は、特定のブログのデータ(記事やテンプレートモジュールなど)を別なブログで利用することです。

たとえば、わたしのサイトではプラグインや JavaScript などによるカスタマイズをメインにして記事をご紹介してます。
特に JavaScript のカスタマイズでは、prototype を使ったものや jQuery を使ったカスタマイズなどご紹介してますが、それらの JavaScript は水と油状態でして、いっしょに使えないことがほとんどです。

ですので、わたしはメインブログでは jQuery を使って、いろんな JavaScript のカスタマイズ例は別ブログで使うようにしてます。
その際、メインブログのデータを MultiBlog プラグインを使うことで、いろんなカスタマイズ例のサンプルとして表示させてるわけです。

先ほど投稿したエントリ、Prototype でプログレスバーの表示 (jsProgressBarHandler.js)もこの方法でサンプル表示させてます。

前フリが長くなりましたが、MultiBlog プラグインによる、そんな使い方を説明します。

MultiBlog プラグインの使い方

一応ここでは MT4 をターゲットとしてます。
基本的には MT3.3x 用の MultiBlog でも同じですので、その都度読み替えてください。

  1. まず、MultiBlog プラグインの設定を行います。
    特定のブログ(B)のデータを利用したいブログ(A)のダッシュボードを表示します。
    そして、画面上部にある「設定」>「プラグイン」を選択して、プラグイン一覧を表示します。

    プラグイン一覧の中から MultiBlog 2.0 をクリックして、「設定」を選択してください。

    「コンテンツのセキュリティ」は、「システムの規定値を使用」で問題ありません。
    「MTMultiBlogタグの既定の属性」で、「含めるブログ」を選択して、データを利用したいブログのブログ ID を入力します。

    たとえば、ここでは、利用したいブログ(A)は、特定のブログ(B)のデータを利用したいわけですから、利用したいブログ(A)の MultiBlog プラグインの設定に、特定のブログ(B)のブログ ID を入力すればいいわけです ( ̄∇ ̄)b

    一通り入力したら「変更を保存」ボタンをクリックして完了です。

  2. 次に利用したいブログ(A)側で、特定のブログ(B)のデータを表示させます。
    たとえば、こちらのPrototype でプログレスバーの表示 (jsProgressBarHandler.js)で使用したサンプルは、以下のようなタグで特定のブログ(B)のデータを表示させています。

    1. <div id="progress_block">
    2.     <MTMultiBlog include="1">
    3.         <?php $entry_all = <$MTBlogEntryCount$>; ?>
    4.         <p>全エントリ数: <?php echo $entry_all; ?></p>
    5.  
    6.         <ul>
    7.         <MTCategories include="1">
    8.             <li><?php $per = round(<$MTArchiveCount$> / $entry_all, 3); ?>
    9.                 <em><span class="progressBar percentImage1" id="element<$MTCategoryID$>"><?php echo ($per * 100); ?>%</span></em>
    10.                 <em>[<$MTArchiveCount zero_pad="3"$>] <$MTCategoryLabel decode_html="1" remove_html="1" regex="s|^[0-9].*[0-9]||" regex="s|\(.*\)||"$></em></li>
    11.         </MTCategories>
    12.         </ul>
    13.     </MTMultiBlog>
    14. </div>

    肝心なところを赤い字で示します。
    <MTMultiBlog> ブロックタグの include 属性に、特定のブログ(B)のブログ IDを指定することで、特定のブログ(B)のデータを扱うことができるようになります。

    <MTMultiBlog>~</MTMultiBlog> の間では、通常の MT タグが使用可能です。
    上記例では、特定のブログ(B)のカテゴリ一覧を表示してます。

以上で、MultiBlog プラグインの便利な使い方は完了です。
ちなみに、この方法では特定のブログ(B)が再構築されても、利用したいブログ(A)は再構築されませんのでご心配なく ( ̄∇ ̄)v

MultiBlog プラグインはとっても便利なので、使う機会がありましたら是非!!

 Trackback Pings(0)

No trackbacks found.

 Comments(4)

#1: Posted by ハミガキ @ January 15, 2008 [REPLY]
user-pic

はじめまして!
multiblogはとても便利なのですが、少しつまずいている箇所がございましてご教授いただけたらと思いまして投稿致します。

AというブログとBというブログがあって、Bが投稿されたときにAも更新されるという設定にしていて、PCから投稿する際は全く問題ないのですが、Bを携帯投稿(moblog.uva.ne.jp)に対応させており、携帯から投稿を行うと、Bは更新されているのですが、Aが更新されず、PC管理画面から投稿されたエントリーを再度保存するとAも更新されます。

MTmailというシステムを使っても同様でした。

検索するとxml-rpc経由だとトリガーがひかれないという情報もあったのですが。。。

#2: Posted by Author Profile Page bzbell @ January 15, 2008 [REPLY]
user-pic

>>1 ハミガキ さん

こんばんわ^^

なるほどぉ。
MultiBlog( MT )も万能ではないんですね。
たとえば、以下の方法なんてどぅでしょパチパチ

  1. B を携帯から投稿
  2. PC から B ( のトップページ )にアクセスされたときに特定にページだけ再構築

具体的にはMovableTypeを自動的に再構築するでご紹介した mt-rebuild.pl を使いました。

トップページにアクセスがあった場合に CGI スクリプト( mt-rebuild.pl )を実行するような JavaScript などを仕込んでおいて、こっそりトップページだけ再構築します。

そうすることで A にも反映されるような気がしますグウグウ

#3: Posted by tetsu @ February 13, 2009 [REPLY]
user-pic

こんにちは!
MT4.23での構築を行っております。

/index.php(ブログA:indexTemplate)
/entry.php(ブログA:entryTemplate)
/blog/entry.php(ブログB:indexTemplate)

のような構造になっていて、blogのエントリーを更新したときに、ルートにある
index.phpとentry.phpに、最近のブログエントリー一覧といったリストを
モジュール化して自動で更新したいと考えております。

以前(MT3.34)はphpをモジュール化して使用していたのですが、せっかく
バージョンアップされた機能を使用したいとmtIncludeとmultiBlogを
組み合わせようかと考えているのですが、再構築に負荷がかかりそうなのと
indexテンプレート以外はプラグインをしようしないとできないという記事を読み
二の足を踏んでおります。

動的なモジュール化を図りたいときどのような形でモジュール化するのが、
いいのでしょうか。

#4: Posted by tetsu @ February 13, 2009 [REPLY]
user-pic

こんにちは!
MT4.23での構築を行っております。

/index.php(ブログA:indexTemplate)
/entry.php(ブログA:entryTemplate)

/blog/entry.php(ブログB:indexTemplate)

のような構造になっていて、blogのエントリーを更新したときに、ルートにある
index.phpとentry.phpに、最近のブログエントリー一覧といったリストを
モジュール化して自動で更新したいと考えております。

以前(MT3.34)はphpをモジュール化して使用していたのですが、せっかく
バージョンアップされた機能を使用したいとmtIncludeとmultiBlogを
組み合わせようかと考えているのですが、再構築に負荷がかかりそうなのと
indexテンプレート以外はプラグインをしようしないとできないという記事を
どこかのサイトで読み二の足を踏んでおります。

動的なモジュール化を図りたいときどのような形でモジュール化するのが、
いいのでしょうか。

 Post a Comment

 

コメント用フィード