【MovableType】投稿日時の更新ボタンを追加

Movable Typeのカスタマイズです。

エントリー投稿画面で、「投稿日」の欄がありますが、ここに表示される日時は、エントリーを「投稿」したときではなく、新規エントリー投稿画面を「開いた」日時になっています。
ですので、正確には「投稿日時」にはなりません。エントリーの編集時間によっては大きな時間差が生じてしまいます。正確にするには、エントリーを書き終わり、「いざ投稿ぞ」というときに手動で修正するしかありません。
それをボタンひとつで行おう、というのが本カスタマイズです。大変便利ですので、この点が気になっていた方はぜひご参考にされてください。

なお、こちらのサイトさんを参考にさせていただきました。ありがとうございました!
エントリーの「作成日時」を更新するボタン – Luna’s*PaPa – とあるパパの育児生活奮闘記 –

では、私の環境での方法をば。ヴァージョンは、[3.2-ja-2]です。


[mt] – [tmpl] – [cms] – [edit_entry.tmpl] を修正します。テクストエディタなどで開いてください。

427行目あたり
(”created_on_manual”を検索すればすぐ見つかります。)

<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” size=”25″ id=”created_on_manual” tabindex=”8″ value=”<TMPL_VAR NAME=CREATED_ON_FORMATTED ESCAPE=HTML>” />
<input onClick=”nowDate()” type=”button” value=”Now” />

そして、<script> ~ </script> のあいだに以下のソースを追記します。
私は、[edit_entry.tmpl] の最初の長いscript記述部分の最後に挿入しました。

<!– 更新時刻を現在の時刻にするボタン –>
function nowDate() {
dat=new Date();
yea=dat.getFullYear();
mon=dat.getMonth() + 1;
day=dat.getDate();
hou=dat.getHours();
min=dat.getMinutes();
sec=dat.getSeconds();
if(mon<10){mon=”0″+mon;}
if(day<10){day=”0″+day;}
if(hou<10){hou=”0″+hou;}
if(min<10){min=”0″+min;}
if(sec<10){sec=”0″+sec;}
document.entry_form.created_on_manual.value=yea + “-” + mon + “-” + day + ” ” + hou + “:” + min + “:” + sec;
}

最後に、[edit_entry.tmpl] をアップロード・上書きすれば終了です。
上記の通りにやると、投稿日欄の下に”Now”という修正ボタンが表示されると思います。ぜひそれでナウい日時にされてください。

  • Posted at 19:10 on Jan 10, 2006
  • | No comments yet

Response

  • 現在、この投稿へのコメント/トラックバックは受け付けていません。