idxctx プラグインというのを作ってみました。

  • Posted on
  • by

例えばエントリーアーカイブで、ブログ全体の最新コメントをサイドバーに表示させたい場合。
MTの仕様では難しい(出来ない?)んですよね。
該当のエントリーのコメントだけがMTCommentsの対象になるので。

例えば月別アーカイブで、ブログ全体の最新エントリーをサイドバーに表示させたい場合。
出来ないんですよね。該当の月のエントリーだけがMTEntriesの対象になるので。

そこで、MTIndexContext というコンテナ・タグを追加するプラグインを作りました。

indexcontext.zip

このコンテナ・タグで囲んだ箇所は、一時的にインデックステンプレートと同じ振る舞いになります。

これは、なにげに便利なんじゃないかな、と思います。例えば、全てのアーカイブページでメイン・ページと同じサイドバーを表示させたい場合、WidgetManagerを使っているなら全てのアーカイブテンプレートに以下のような記述をするだけで済むようになります。

<MTIndexContext>
  <MTWidgetManager name="MyWidget">
</MTIndexContext>

インストールは、zipを解凍して出てくる「indexcontext.pl」ファイルをpluginsディレクトリにアップロードするだけです。

早速このブログにも適用してみました。
カテゴリーアーカイブは使っていませんが、エントリーと月別のアーカイブで、メインと同じ出力が得られていますのでご確認ください。
Widgetの操作だけでメインページと全アーカイブのサイドバーが変更できるので、非常に楽チンです。


ただし。欠点。小一時間格闘したのですが、ダイナミック・パブリッシング用のPHPが出来てません。perlと根本的な仕様が違っていて、なかなか難しそう。ていうか今の僕には実現できそうにありません。だってPHPなんて触ったこと無いんだもの。


3月21日追記

あんちもん2.Labさんがダイナミック・パブリッシングに対応させてくださいました! すごい!
あんちもん2.Lab: ダイナミック・パブリッシング対応 indexcontext プラグイン
感謝感激です。