MovableType 3.2 「投稿日」に現在時刻を設定するボタン追加

たまにはMTの改造などを。

最近よく下書きして後でエントリーすることが増えてきたのですが、ここで面倒くさいのが投稿日時の設定。いちいち現在時刻を手で入れていたのですが、全角で入っちゃったり、ちょっとでもフォーマットを間違えるとエラーになるし面倒です。そこでJavaScriptで入れ込むのを作ってみました。

テンプレート /tmpl/cms/edit_entry.tmplの変更

427c427,428
< <input name="created_on_manual" id="created_on_manual" tabindex="8" value="<TMPL_VAR NAME=CREATED_ON_FORMATTED ESCAPE=HTML>" />
---
> <input name="created_on_manual" id="created_on_manual" tabindex="8" value="<TMPL_VAR NAME=CREATED_ON_FORMATTED ESCAPE=HTML>" /><input type="button" name="currentTime" value="<MT_TRANS phrase="put CurrentTime">" onclick="putCurrentTime(this.form)" /> >

これで投稿日時のテキストボックスの下のボタンが配置されます。

テンプレート /tmpl/cms/header.tmplの変更

16a17
> <script type="text/javascript" src="<TMPL_VAR NAME=STATIC_URI>js/currentTime.js"></script>

JavaScriptのjsファイルを読み込む設定を追加します。

javascriptファイルの配置

mt-static/js/ディレクトリに currentTime.jsを配置します。

//
// putCurrentTime
// 04/10/2006 by tnoma
//
function putCurrentTime( f ){
    var now = new Date();
    var year = now.getYear();
    var month = now.getMonth()+1;
    var day= now.getDate();

    if( year < 2000 ) year += 1900;
    if( month < 10 ) month = "0" + month;
    if( day < 10 ) day = "0" + day;

    var hour = now.getHours();
    var min = now.getMinutes();
    var sec = now.getSeconds();

    if( hour < 10 ) hour = "0" + hour;
    if( min < 10 ) min = "0" + min;
    if( sec < 10 ) sec = "0" + sec;


    var currentTime = year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec;

    f.created_on_manual.value = currentTime;
}
/lib/MT/L10N/ja.pmの変更

ボタンを日本語化します。

*** ja.pm       Tue Apr 11 00:09:25 2006
--- ja.pm.20060410      Tue Apr 11 00:09:19 2006
***************
*** 1820,1826 ****
        'SpamLookup module for using blacklist lookup services to filter feedback.' => 'ブラックリストにより、迷惑コメント/トラックバックをチェックします。',
        'To prevent lookups for some IP addresses or domains, list them below. Place each entry on a line by itself.' => 'ブラックリストのチェックから除外するIPアドレス/ドメイン (ホワイトリスト) を登録できます。複数登録する場合は、改行してください。',
        'Word Filter match on \'[_1]\': \'[_2]\'.' => 'キーワードが合致しました: [_2] ([_1])',
-       'put CurrentTime' => '現在時刻を設定',

  );

--- 1820,1825 ----

'put CurrentTime'の日本語訳を定義しました。

とまあここまでやった後にぐぐったら、先人たちが同じように改造してましたとさ(^^;

追記)プラグインが便利ですね
エントリーの投稿日を公開日に自動変更するReleaseDateプラグイン