Movable Type 4.1でカスタムフィールド機能が追加され、ブログ記事等にフィールドを追加することができるようになりました。
フィールドのデータ型はテキストや画像などから選ぶことができます。
日付のフィールドも追加することができます。
しかし、日付のフィールドにformatモディファイアを指定する機能がありません。
日付の書式は、カスタムフィールドのプログラムに直接書かれています。
この点を改善して、日付のフィールドの値を、formatモディファイアで書式づけて出力するプラグインを作ってみました。
1.プラグインのインストール
プラグインは以下からダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ダウンロードしたファイルを解凍すると、「CustomFieldDate」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。
2.使い方
このプラグインをインストールすると、以下の4つのテンプレートタグが追加されます。
| テンプレートタグ | 対応するオブジェクト |
|---|---|
| MTEntryCustomFieldDate | ブログ記事 |
| MTPageCustomFieldDate | ウェブページ |
| MTCategoryCustomFieldDate | カテゴリ |
| MTFolderCustomFieldDate | フォルダ |
これらのテンプレートタグは、以下のような書き方をします。
<MTXXXCustomFieldDate field="フィールドのベースネーム" format="書式指定文字">
「フィールドのベースネーム」には、カスタムフィールドの設定のページで、「ベースネーム」の欄に設定したベースネームを指定します。
3.利用例
例えば、ブログ記事に日付型のフィールドを1つ追加しているとします。
また、そのフィールドのベースネームが「datefield」であるとします。
この場合、このフィールドの日付を「○○○○年□□月△△日」の書式で出力するには、以下のように書きます。
<$MTEntryCustomFieldDate field="datefield" format="%Y年%m月%d日"$>






![Hardcore Will Never Die, But You Will [Bonus Tracks] Hardcore Will Never Die, But You Will [Bonus Tracks]](http://userserve-ak.last.fm/serve/34s/67192634.jpg)



コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
すばらしいプラグインをありがとうございます。
インストールはうまくいって、
システムのプラグイン一覧にプラグインが表示されているのですが、
テンプレートを更新しようとすると、
Undefined subroutine &MT::Plugin::CustomFieldDate::page_custom_field_Date called at lib/MT/Builder.pm line 379.
というエラーが出て、システムのエラーログにも表示されず、困っています。
他のプラグインは動いているのですが、どのような原因が考えられますでしょうか…。
>mik1542さん
こんにちは。
不具合のご指摘をいただき、ありがとうございます。
CustomFieldDate.plの37行目の「・・・\&page_custom_field_Date,」の最後にある「Date」を「date」に変えてください。
早速お返事いただき、ありがとうございました。
無事、エラーは解消されました。
が…、再構築してみたところ、
フィールドの「ベースネーム」を入れても
フィールド「xxx」が存在しません 、というエラーが出てしまい、
原因が分かりません…。
<mt:Pages id="1">
<$MTPageCustomFieldDate field="xxx" format="%m月%d日" $>
</mt:Pages>
のような形で使用しております。
度々大変申し訳ありません、どうすれば動くようになりますでしょうか。
>mik1542さん
こんにちは。
ご指摘の不具合を確認しました。
プラグインをMovable Type 5にも対応させるのと合わせて、ご指摘の不具合を修正します。
近日公開しますので、今しばらくお待ちください。