お知らせ

Movable Type 5 Webサイト製作ガイドVolume 12009年12月7日

Movable Type 5 Webサイト製作ガイドVolume 1」を発売しました。
Movable Type 5を基本からしっかりマスターしたい方のための書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

テンプレートの再構築結果を部分的にファイルに出力するプラグイン

| コメント(7) | トラックバック(5)

Movable Typeでテンプレートを再構築する際に、<MTWriteToFile>~</MTWriteToFile>のタグで囲んだブロックを、任意のファイルに出力するプラグインを作りました。
Movable Type 4以降で動作するはずです(4.21で動作確認しました)。

1.ダウンロードとインストール

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

WriteToFile_1_00.zip

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

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

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

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

2.基本的な使い方

このプラグインをインストールすると、MTWriteToFileというブロックタグが追加されます。
基本的には、このタグは以下のような書き方をします。

<MTWriteToFile file="出力先ファイル名">
ファイルに出力する内容
</MTWriteToFile>

ブロックの内部は、通常はテンプレートの再構築結果には出力されず、fileモディファイアで指定したファイルにのみ出力されます。

また、出力先ファイル名は、相対パスまたは絶対パスで指定します。
相対パスで指定した場合、通常はサイトパス(ブログの出力先のディレクトリ)を基準にした位置にファイルを出力します。

3.モディファイア

MTWriteToFileタグでは、以下のモディファイアを指定することができます。

3-1.archive_pathモディファイア

出力先ファイル名を相対パスで指定した際に、サイトパスではなく、アーカイブパスを基準にするようにします。

3-2.outモディファイア

「out="1"」のモディファイアを指定した場合、MTWriteToFileタグのブロックの内部をファイルに出力するとともに、テンプレートの再構築結果にも出力します。

3-3.no_fileモディファイア

「no_file="1"」のモディファイアを指定した場合、MTWriteToFileタグのブロックの内部をファイルに出力しません。
このモディファイアとoutモディファイアを組み合わせることで、状況に応じて、ブロックの内容をファイルに出力するか、あるいはテンプレートの再構築結果に出力するかを分けるようなことができます。

3-4.overwriteモディファイア

このプラグインでは、ブロックの再構築結果と、出力先のファイルの内容が全く同じである場合、通常はファイルを上書きしないようになっています。
そのような場合でも強制的にファイルを上書きしたい場合は、「overwrite="1"」のモディファイアを指定します。

トラックバック(5)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1459.

こんにちわ^^ 先日、The blog of H.Fujimoto さんとこで WriteToFile プラグインというものが公開されました。 テンプレー... 続きを読む

こんにちわ^^ 先日、The blog of H.Fujimoto さんとこで WriteToFile プラグインというものが公開されました。 テンプレー... 続きを読む

MovableTypeにある「ウェブページ」と「フォルダ」は、通常のbl... 続きを読む

MovableTypeにある「ウェブページ」と「フォルダ」は、通常のbl... 続きを読む

Movable Type 4 から、エントリーに対応してウエブページ、カテゴリに... 続きを読む

コメント(スレッド4件,コメント7件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 footbrain : 改行が挿入されている?

待ってましたとばかりに、早速使用させて頂いてますが、出力された内容の先頭に改行が入ってしまいます。

プラグインを使用せずに書き出した場合には、改行が入らないのですが、どうしてでしょうか?

No.2 footbrain : (無題)

自己レスです。

<MTWriteToFile file="出力先ファイル名">
ファイルに出力する内容
</MTWriteToFile>
と書いていたものを、

<MTWriteToFile file="出力先ファイル名">ファイルに出力する内容</MTWriteToFile>

のように一行に書き直したところ、改行は挿入されませんでした。

失礼いたしました。

No.3  : Re:改行が挿入されている?

>footbrainさん
こんにちは。

ご質問の件ですが、MTWriteFileタグの後に改行を入れると、その改行がファイルに出力されます。
MTWriteFileタグの後に改行を入れずに、タグの直後にブロックの中身を書くようにすれば、先頭に改行を出力しないことができます。

No.4 bzbell : (無題)

こんばんわ^^

MTWriteFile について質問させてください。
MTWriteFile を使って以下のようなコードで再構築すると必ずエラーしてしまいます。

<mt:SetVar name="frame" value="archives/2009/07/foo.php">
<MTWriteToFile file="$fname">
</MTWriteToFile>

file モディファイアに変数を渡すとエラーするようで、テキスト( archives/2009/07/foo.php )だと問題ありませんでした。また、カレントに出力( フォルダを含まないパス )でも正しく出力されます。

環境は MT4.26 で利用してます。
お手数ですが何が原因かご教授頂けますでしょうか。
よろしくお願い致します。

No.5  : (無題)

>bzbellさん
こんにちは。

申し訳ありませんが原因不明です。
ちなみに、MT4.26で以下のようなインデックステンプレートをテストしてみましたが、問題なく再構築できました。

<mt:Entries lastn="5">
  <mt:SetVarBlock name="file"><$mt:EntryDate format="%Y/%m/%d-test.txt"$></mt:SetVarBlock>
  <mt:WriteToFile file="$file">
    <$mt:EntryTitle$>
  </mt:WriteToFile>
</mt:Entries>
No.6 bzbell : (無題)

こんばんわ^^

お手数おかけしました。

>ちなみに、MT4.26で以下のようなインデックステンプレートをテストしてみましたが、問題なく再構築できました。

そうですよねぇ…実はウチでもインデックステンプレートは問題なく使えちゃってるから困ってます嫌な感じ
変数の内容を表示したところ、目的の相対パスが表示されたので問題なさそうなんです。

もう少しがんばってみます。
ありがとございました音符

No.7 bzbell : (無題)

度々すいません。
原因分かりました音符

MTSetVarBlock ブロックタグを以下のように使用したことでパスの前後に余分なスペースが入っちゃってました。

<mt:SetVarBlock name="fname">
<$mt:EntryDate format="%Y/%m/%d-test.txt"$>
</mt:SetVarBlock>
ホントにお騒がせしました!

コメントする