Movable Type 備忘録
アーカイブの種類を判別する
- Next Page: トラックバックURLの実体参照文字でスパム予防
- Prev Page: カテゴリ内の最新エントリ一覧を表示する
MovableType(ムーバブルタイプ)に限らず、ほとんどのブログでは1つのテンプレートを共有して、別なページを作成したりしますよね。
たとえば、日別、月別は日付アーカイブ・テンプレートを共有して、個別のページが作成されます。 でも、それぞれで違ったカスタマイズをしたかった場合、不都合がでますよね。 たとえば、月別アーカイブにだけちょっとしたカスタマイズしたかった場合、日別アーカイブにも同じカスタマイズがされてしまいます。
今回は共有された日付アーカイブ・テンプレートを日別・月別で判別するカスタマイズをやってみました。
共有された日付アーカイブ・テンプレートを、日別・月別、人によっては週別に判別するには、デフォルトのMTタグの機能ではできません。 これを実現するには、IfTemplateTypeプラグインを使用して判別します。
このプラグインを使ってどんなことができるかというと、たとえば以下の日別、月別のページを比較してみてください。
右上のタイトルが日別アーカイブと月別アーカイブでは表示が異なります。 そんなたいした違いではありませんが、ちょっとしたアクセントを付けることができます。
大きな違いを持たせるなら、MovableType(ムーバブルタイプ)の新機能のウィジェットを別々に作成することで、日別・月別で違いを持たせることも可能ですよね。
もっと大きな違いを持たせるなら、カテゴリ・アーカイブ、個別エントリ・アーカイブ、日別・月別アーカイブを1つのテンプレートで共有して、各ページ固有部分をモジュール化することで、IfTemplateTypeプラグインによる判別でそれぞれを表示させることだって可能だと思います。 これはちょっと大げさですけどね(; ̄- ̄)
今回参考にしたサイトはThe blog of H.fujimoto様です。
実はこのIfTemplateTypeプラグインは、だいぶ前から使用していたのですが、ずっと紹介せず放置して( 忘れて )ました(つω-`。)
▼IfTemplateTypeプラグインの入手はこちらから
http://www.h-fj.com/blog/archives/2006/01/27-152207.php
プラグインのインストール
まず、IfTemplateTypeプラグインをサーバにアップロードします。 上記URLで表示されたコードをテキストファイルにコピペして保存します。 その際、ファイル名を IfTemplateType.pl で保存してください。 保存したらサーバにアップロードします。 アップロード先は、いつものように mt/plugins/ディレクトリの中にアップロードします。
日付アーカイブの修正
ここでは、実際にわたしが日付アーカイブ・テンプレート内で使用しているコードを例にして説明します。
日付アーカイブ内のタイトル表示を日別・月別で変えるような修正を入れています。 以下のようなかんじ。
<MTIfTemplateType type="Monthly">
<h1 id="banner-header"><a href="<$MTBlogURL$>" accesskey="1"><$MTArchiveDate language='en' format='%B, %Y'$>( 月別アーカイブ )</a></h1>
<MTElse>
<h1 id="banner-header"><a href="<$MTBlogURL$>" accesskey="1"><$MTArchiveDate language='en' format='%B %d, %Y'$>( 日別アーカイブ )</a></h1>
</MTElse>
</MTIfTemplateType>
青い字の部分で判別したいアーカイブ名を指定しています。 IfTemplateTypeプラグインで指定できるアーカイブ名は以下の通り。
- Index
インデックス・テンプレートを判別するときに指定します。 - Category
カテゴリ・アーカイブを判別するときに指定します。 - Monthly
月別・アーカイブを判別するときに指定します。 - Weekly
週別・アーカイブを判別するときに指定します。 - Daily
日別・アーカイブを判別するときに指定します。 - Individual
個別エントリ・アーカイブを判別するときに指定します。
赤い字の部分が月別アーカイブだった場合のタイトル表示になります。 緑の字の部分は<MTElse>タグを併用することで、月別アーカイブ以外( ようするに日別アーカイブ )だったら…という条件を付加して、その時に表示するタイトルのコードになります。
修正したら、保存して再構築してください。
以上で、日別・月別アーカイブでちょっとしたアクセントを持たせることができました。 これはほんの一例なので、アイデア次第でいろいろ使えそうなプラグインですよね。
Trackback Pings(2)
- from
movabletype
少数人数の会社に求められるスタッフの要素 Prototype.js を使って、MovableTypeで最新記事を表示する MovableTypeを自動的に...
- from
デザインウォーカー | DesignWalker - ロサンゼルスで働くウェブデザイナーの日記
ムーバブルタイプ3.3から、標準装備されておりますプラグインWidget Managerなんですが、こいつは非常に便利なツールなのです。が・・・意外と使い...
Comments(2)
- #2: Posted by bzbell [RES]
>>1 oscar さん
こんにちわ^^
ですよねぇ。
かゆいとこに手が届いた!ってかんじのプラグインです。
ありそうでなかったですよね。世に出回っているプラグインはどれもすばらしいものですが、こちらのプラグインはわたしが使用している中でBEST10に入るくらい気に入っています♪


私もこのプラグイン、しょっちゅう使ってます。なるべく各テンプレート間で同じソースを使えるようにするには、重要なプラグインですよね。
最初の頃は、すべてのテンプレートで使えるモジュールを、作ろうと使ってみたんですけど、例え条件判断で表示されないMTタグでもインクルードでエラーになるのが解り、すごく残念に思った覚えがあります。
もっとも、IfTemplateTypeで表示する内容をインクルードタグにして、さらに孫モジュールを読み込むと騙されてくれるという中途半端な仕様でしたけど。