予約変数一覧 for Movable Type 4(その2)

予約変数一覧 for Movable Type 4(その2)

Posted at November 20,2007 1:27 AM
Tag:[MovableType, Template]

MTIf タグ等でアーカイブ種別を判定するための、Movable Type 4 で予め用意された予約変数一覧です。「予約変数一覧 for Movable Type 4(その1)」でまとめたものは変数に"1"が設定されているものですが、今回は、

archive_class

という変数に設定されている文字列をまとめました。
大体お分かりと思いますが、この変数はアーカイブ種別を判定するためのものです。

前回同様、lib/MT/WeblogPublisher.pm に記載されています(使用方法は後述)。

アーカイブ種別変数名
年別datebased-yearly-archive
月別datebased-monthly-archive
週別datebased-weekly-archive
日別datebased-daily-archive
ブログ記事entry-archive
ウェブページpage-archive
カテゴリcategory-archive
年別カテゴリcategory-yearly-archive
月別カテゴリcategory-monthly-archive
週別カテゴリcategory-weekly-archive
日別カテゴリcategory-daily-archiv
ユーザーauthor-archive
年別ユーザーauthor-yearly-archive
月別ユーザーauthor-monthly-archive
週別ユーザーauthor-weekly-archive
日別ユーザーauthor-daily-archive

例えば、アーカイブ種別が「月別カテゴリ」であることを判定したい場合は、

<MTIf name="archive_class" eq="category-monthly-archive">
  :
</MTIf>

とテンプレート(またはテンプレートモジュール)に書きます。

このタグが書かれたテンプレートやテンプレートモジュールが「月別カテゴリ」として実行される場合、MTIf タグのブロック内部が実行されます。

アーカイブ種別が「ブログ記事」であることを判定したい場合は

<MTIf name="archive_class" eq="entry-archive">
  :
</MTIf>

と書きます。このタグが書かれたテンプレートやテンプレートモジュールが「ブログ記事」として実行される場合、MTIf タグのブロック内部が実行されます。

これらを利用すれば、独自の変数を用意する必要はありません。

MTArchiveType との違い

Movable Type では MTArchiveType タグが用意されているので、これを使って判定することも可能ですが、実装がやや面倒です。
例えば、アーカイブ種別が「ブログ記事」であることを判定したい場合は、

<MTSetVarBlock name="archive_type"><$MTArchiveType$></MTSetVarBlock>
<MTIf name="archive_type" eq="Individual">
  :
</MTIf>

となります。MTSetVarBlock タグで値を任意の変数 archive_type に設定する分が余分に必要です。

変則的な判定方法

like 属性を用いて、各アーカイブ(日付・カテゴリ・ユーザー)の月別アーカイブだけを取得するには次のように記述します。

<MTIf name="archive_class" like="monthly">
  :
</MTIf>
関連記事
トラックバックURL


コメント

いつもありがとうございます。
kenji1020と申します。

movabletype4.01を導入したこともあり、最近は小粋空間さんを見っぱなしです。
勉強になります。

お忙しい中申し訳ございませんが、ご質問させてください。


現在、MTのウェブページをいくつか作成し(例:会社概要・サイトについて・スタッフ紹介など)ようとしている段階なのですが、それぞれ違ったデザイン(テンプレート)にしようとい考えています。

ウェブサイトのアーカイブテンプレートは1つしかないので、作りたいウェブページに合わせて新規に自分でアーカイブテンプレートを作成しようと思いますが、

作成したアーカイブテンプレートを、それぞれウェブページに割り当てていくにはどのようにすれば宜しいでしょうか?


※話は少しそれますが、
現在、カテゴリーページ(2階層目)は、もともとある「ブログ記事リスト」というテンプレートとは別に、「カテゴリーアーカイブ」という名前の自分で作ったテンプレートを使用しています。
こちらの編集画面のアーカイブマッピングに緑のチェックが入っていますが、なぜもともとのブログ記事リストが無視されて、私が作った方が反映されているのかも微妙にわからないのです・・緑のチェックがポイントなのでしょうか?


色々サイトを見ていると、タグや、ファイル名などで指定するという風に書いていたりする所がありましたが、詳しく掲載されていないので困っています。


宜しくお願いいたします。

[1] Posted by kenji1020 logo : December 3, 2007 7:35 PM

>kenji1020さん
こんにちは。
ご要望の内容は別途エントリーしたいと思います。
すいませんが少々お時間ください。

また、カテゴリーやウェブページのデザインを切り替えるためにアーカイブを新しく作成するのは避け、ひとつのテンプレート内で(MTIf タグ等で)振り分ける方法をお勧めします。
この辺りの詳細についてはチェック(チェックボックス)の話も含めて別に詳しく紹介したいと思います。

それではよろしくお願い致します。

[2] Posted by yujiro logo : December 4, 2007 11:30 AM

yujiro様>

ご返信ありがとうございます。
ひとつのテンプレート内で振り分ける方法が良いのですね。

それではエントリー楽しみにしています!

失礼します。

[3] Posted by kenji1020 logo : December 4, 2007 11:56 AM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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