メインページと同じ情報をアーカイブページで表示する indexcontext プラグイン

メインページと同じ情報をアーカイブページで表示する indexcontext プラグイン

Posted at March 20,2007 1:55 AM
Tag:[Customize, MovableType, Plugin]

Movable Type のアーカイブページ(カテゴリー・アーカイブ/日付アーカイブ/エントリー・アーカイブ)ではメインインデックスと全く同じ情報を出力することができません。

以前、「アーカイブページに「最近のコメント」「最近のトラックバック」を表示する」というエントリーに記した通り、「最近のエントリー」「最近のコメント」「最近のトラックバック」はアーカイブページによって出力される情報が異なります。

デフォルトテンプレートのアーカイブページにそれらの情報が設定されていないのが上記の理由であるかどうかは定かではありませんが、この振る舞いは(多分)マニュアル等に明記されていません。

先のエントリーではあの手この手でアーカイブに依存しないで表示させる方法を列挙していますが、本エントリーで紹介するプラグインを利用すればこの問題を簡単に解消してくれます。

1.プラグインのインストール

下記のサイトよりプラグインをダウンロードします。

blog.aklaswad.comidxctx プラグインというのを作ってみました。

ダウンロードした indexcontext.zip を解凍し、中にある indexcontext.plplugins ディレクトリにアップロードします。

2.タグの設定

このプラグインが提供するタグは MTIndexContext のみです。このタグで表示させたい各リストの外側を括ります。

デフォルトテンプレートの各アーカイブページで「最近のエントリー」を表示させたい場合、下記のタグをサイドバー部分に設定します。

<div class="module-archives module">
   <h2 class="module-header">最近のエントリー</h2>
   <div class="module-content">
      <ul class="module-list">
      <MTIndexContext>
         <MTEntries lastn="10">
            <li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
         </MTEntries>
      </MTIndexContext>
      </ul>
      <a href="<$MTBlogURL$>atom.xml">このブログのフィードを取得</a><br />
      [<a href="http://www.sixapart.jp/about/feeds">フィードとは</a>]
   </div>
</div>

公開テンプレートの場合は下記のタグを設定します。

<div class="sidetitle">
Recent Entries
</div>
 
<div class="side">
<MTIndexContext>
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</MTIndexContext>
</div>

「最近のコメント」は MTComments の外側、「最近のトラックバック」は MTPings の外側を括ります。

上記のサンプルでは MTEntries の直前と直後に MTIndexContext を追加していますが、一番外側にある div 要素の直前と直後に設定しても構いません。

3.WidgetManager による設定

配布元でも紹介されていますが、WidgetManager を利用することでテンプレート上の管理を簡単にすることができます。

例えば、「最近のエントリー」をメインページに表示するには次の1行を設定します。

<$MTWidgetManager name="Recent Entries"$>

そしてアーカイブページは下記のように MTIndexContext で括った形で設定します。

<MTIndexContext>
<$MTWidgetManager name="Recent Entries"$>
</MTIndexContext>

MTWidgetManager タグの name 属性には Widget 名を設定します。Widget 名は「Recent Entries」という名前で「テンプレート・モジュール」に予め登録されたもので、Widget の内容には「最近のエントリー」のタグ(下記)が設定されています。
設定方法の詳細は WidgetManager をご覧ください。

<div class="module-archives module">
   <h2 class="module-header">最近のエントリー</h2>
   <div class="module-content">
      <ul class="module-list">
      <MTEntries lastn="10">
         <li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
      </MTEntries>
      </ul>
      <a href="<$MTBlogURL$>atom.xml">このブログのフィードを取得</a><br />
      [<a href="http://www.sixapart.jp/about/feeds">フィードとは</a>]
   </div>
</div>

このような設定を行うことで Widget を各テンプレートで共用することが可能になります。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

ダイナミック・パブリッシング対応 indexcontext プラグイン from あんちもん2.Lab
idxctxプラグイン(indexcontextプラグイン)の、ダイナミック・パブリッシング対応PHP版、作っちゃいました。 [続きを読む]

Tracked on March 21, 2007 5:21 PM

月別アーカイブにも月別アーカイブ一覧を表示(ややこしい):indexcontext.pl from metabolism
 今日はMTづいてますw  久し振りに小粋空間さんを彷徨ってたら、ずっと欲しかっ... [続きを読む]

Tracked on December 16, 2007 9:40 PM

最近のエントリー&コメントの表示 from 瑞了奇譚
最近のエントリーと最近のコメント。この二つの表示について今まで気になっていることがありました。 [続きを読む]

Tracked on March 14, 2008 11:03 PM
コメント

こんばんわ?
blog.aklaswad.com:idxctx をダウンさせていただいて設定したのですが、新規エントリーを書いたあと、「全てを再構築」しないと、反映されません。
設定がまちがっているのでしょうか?
ご指導お願いします

[1] Posted by ななこ : March 24, 2007 12:07 AM

追記です。
1.プラグインのインストール
2.タグの設定
*(3.WidgetManager による設定は行っていません)

=================================================
2.タグの設定を、各ページの
エントリーリスト、コメントリスト、カテゴリーリストアーカイブリストにして「全て再構築」すると反映されている状態です。

すみません。説明のしかたが悪くて;;

この状態であれば、エントリーする度に「全てを再構築」しなければならない。

3.WidgetManager による設定は上記の

1.プラグインのインストール
2.タグの設定
とセットになっているものですか?

もしセットであるならば、エントリーするときの
再構築の仕方はどうなりますか?

[2] Posted by ななこ : March 24, 2007 1:36 AM

解決しました。


.
.

として、

インデックステンプレートにモジュールをつくり
再構築のときのチェックをいれ


などとと、各アーカイプページに記述することで
解消されました。

[3] Posted by ななこ : March 24, 2007 12:58 PM

>ななこさん
こんにちは。
ご質問の件、自己解決されたようで良かったです。
また貴重な情報ありがとうございました。

[4] Posted by yujiro : March 27, 2007 10:56 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)