再構築するファイルの情報を得るプラグイン

再構築するファイルについて、以下の情報を得るプラグインを作りました。

  • ファイルの元になっているテンプレートの名前
  • アーカイブのタイプ
  • 出力先のファイル名や、サーバー内でのパス
  • ファイルの絶対URLと、「http://ドメイン」の部分を除いたURL

テンプレートの種類に応じて処理を変える時に使うなど、使い道はいろいろあるのではないかと思います。

1.動作の要件

このプラグインは、Movable Type 4以降用です。
ただし、以下の状況では使うことができません。

  • システムテンプレート(検索結果やコメントプレビューなど)から動的に出力されるページの場合
  • MT標準のダイナミック・パブリッシングを使う場合
  • 拙作のPerl版ダイナミック・パブリッシングを使う場合

なお、MT標準のテンプレートでは、システムテンプレートでは変数system_templateが定義されるようになっています。
したがって、以下のようにタグを組めば、システムテンプレートでないときだけ、このプラグインのタグを処理することができます。

<MTUnless name="system_template">
このプラグインのタグを使う処理
</MTUnless>

2.インストール

このプラグインは、以下のアドレスからダウンロードすることができます。

FileInfo_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ファイルを解凍すると、「FileInfo」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

3.追加されるテンプレートタグ

このプラグインをインストールすると、以下のテンプレートタグが追加されます。

・MTFileInfoTemplateName
ファイルの元になったテンプレートの名前を出力します。
例えば、「メインページ」のテンプレートでは、このタグの出力は「メインページ」になります。

・MTFileInfoArchiveType
以下の表のように、ファイルのアーカイブタイプを出力します。

アーカイブのタイプ出力される値
インデックスIndex
年別Yearly
月別Monthly
週別Weekly
日別Daily
カテゴリーCategory
年別カテゴリーCategory-Yearly
月別カテゴリーCategory-Monthly
週別カテゴリーCategory-Weekly
日別カテゴリーCategory-Daily
ユーザーAuthor
年別ユーザーAuthor-Yearly
月別ユーザーAuthor-Monthly
週別ユーザーAuthor-Weekly
日別ユーザーAuthor-Daily
ブログ記事Individual
ウェブページPage

MTFileInfoTemplateNameタグとMTFileInfoArchiveTypeタグを組み合わせることで、「テンプレート名が○○で、かつアーカイブタイプが□□のときだけ何かを出力する」といったことができます。
テンプレートやアーカイブタイプに応じて、サイドバーに出力する内容を変えるようなときに、この手法を使うことができます。

例えば、テンプレート名が「ブログ記事リスト」で、アーカイブタイプがカテゴリーの時だけ何かを出力をするには、以下のように書くことができます。

<MTSetVarBlock name="fi_template_name"><$MTFileInfoTemplateName$></MTSetVarBlock>
<MTSetVarBlock name="fi_archive_type"><$MTFileInfoArchiveType$></MTSetVarBlock>
<MTIf name="fi_template_name" eq="ブログ記事リスト">
    <MTIf name="fi_archive_type" eq="Category">
        出力する内容
    </MTIf>
</MTIf>

・MTFileInfoFileName
出力されたファイルの名前(ディレクトリ名を除いた部分)を出力します。

・MTFileInfoPath
出力されたファイルの、サーバー内でのフルパスを出力します。

・MTFileInfoRelativePath
インデックステンプレートでは、出力されたファイルのパスのうち、サイトパスから後の部分を出力します。
また、アーカイブテンプレートでは、出力されたファイルのパスのうち、アーカイブパスから後の部分を出力します。

・MTFileInfoLink
ファイルのURLを出力します。

・MTFileInfoRelativeURL
ファイルのURLのうち、「http://ドメイン名」を除いた部分を出力します。
例えば、URLが「http://www.foo.com/blog/index.html」の場合、「/blog/index.html」を出力します。