拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
テンプレートの再構築結果を部分的にファイルに出力するプラグイン
Movable Typeでテンプレートを再構築する際に、<MTWriteToFile>~</MTWriteToFile>のタグで囲んだブロックを、任意のファイルに出力するプラグインを作りました。
Movable Type 4以降で動作するはずです(4.21で動作確認しました)。
1.ダウンロードとインストール
このプラグインは、以下からダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、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"」のモディファイアを指定します。
3-5.bomモディファイア
「bom="1"」のモディファイアを指定すると、出力ファイルの先頭にBOM(Byte Order Mark)を付加します。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
footbrain
待ってましたとばかりに、早速使用させて頂いてますが、出力された内容の先頭に改行が入ってしまいます。
プラグインを使用せずに書き出した場合には、改行が入らないのですが、どうしてでしょうか?
footbrainからfootbrainへの返信
自己レスです。
<MTWriteToFile file="出力先ファイル名">
ファイルに出力する内容
</MTWriteToFile>
と書いていたものを、
<MTWriteToFile file="出力先ファイル名">ファイルに出力する内容</MTWriteToFile>
のように一行に書き直したところ、改行は挿入されませんでした。
失礼いたしました。
壱
>footbrainさん
こんにちは。
ご質問の件ですが、MTWriteFileタグの後に改行を入れると、その改行がファイルに出力されます。
MTWriteFileタグの後に改行を入れずに、タグの直後にブロックの中身を書くようにすれば、先頭に改行を出力しないことができます。
bzbell
こんばんわ^^
MTWriteFile について質問させてください。
MTWriteFile を使って以下のようなコードで再構築すると必ずエラーしてしまいます。
file モディファイアに変数を渡すとエラーするようで、テキスト( archives/2009/07/foo.php )だと問題ありませんでした。また、カレントに出力( フォルダを含まないパス )でも正しく出力されます。
環境は MT4.26 で利用してます。
お手数ですが何が原因かご教授頂けますでしょうか。
よろしくお願い致します。
壱からbzbellへの返信
>bzbellさん
こんにちは。
申し訳ありませんが原因不明です。
ちなみに、MT4.26で以下のようなインデックステンプレートをテストしてみましたが、問題なく再構築できました。
bzbellからbzbellへの返信
こんばんわ^^
お手数おかけしました。
>ちなみに、MT4.26で以下のようなインデックステンプレートをテストしてみましたが、問題なく再構築できました。
そうですよねぇ…実はウチでもインデックステンプレートは問題なく使えちゃってるから困ってます:pp_03.gif:
変数の内容を表示したところ、目的の相対パスが表示されたので問題なさそうなんです。
もう少しがんばってみます。
ありがとございました:pp_05.gif:
bzbell
度々すいません。
原因分かりました:pp_05.gif:
MTSetVarBlock ブロックタグを以下のように使用したことでパスの前後に余分なスペースが入っちゃってました。
ホントにお騒がせしました:pp_07.gif: