「作成日時」を更新するボタン追加

お知らせ:
MovableType3.2および、BigPAPIに対応したプラグインとして、ボタン追加のためのプラグイン[ UpdateAuthoredOn ]を紹介しています。下記情報と全く同じになる、カスタマイズ版も載せてありますので、よろしければどうぞ。

NOBODY:PLACE – MUTTER: 「作成日時」を更新するボタンを追加するプラグイン(UpdateAuthoredOn改造編)


『自分だけの編集ボタン』でお世話になった alectropeさんのところで、
以下のようなエントリーを発見して驚愕。目鱗。キャー。

「作成日時」を更新するボタン追加 | alectrope

上記記事内でもおっしゃってますが、エントリ作成時間てのは意外と融通が利かないもの。
新規エントリ作成してから書き上げるのに時間が掛かったり、
下書きにしておいたネタを整形することがあったり、
この時間を現在時刻に直す作業ってのは、日常、結構頻繁に行う。
それを、JavaScriptを使ってボタンひとつで実装しようじゃないか、というのがこのアイディア。
そうなんですよ、まったく。
いちいち、時とか分とか、チマチマ直してらんないんです。

詳細は上記記事を参考に…といいたいところなんですが、
alectropeさんはMT2.661を使用されていて、MT3xとは該当テンプレが微妙に違う。
なので、若干変更を加えつつ(でも本線は同じ)、実装してみました。

[1] まず、/tmpl/cms/edit_entry.tmpl を開く。
基本ですが、バックアップは取っておいてください。『名前を変えてダウンロード』でもしておけば可。

[2] ボタンを作成する。
テキストエディタで開いて、created_on_manualで検索を掛けると、276行目辺りがヒットします。
ここはどこか、というと、エントリー投稿画面の、作成日時、の部分。


ここに、
<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>” /><br />
<input onClick=”nowDate()” type=”button” value=”Now” />
に変更します。
(XHTMLなので、inputタグ終わりの/を忘れないように)

[3] 次に、JavaScriptを追加する。
同ファイルの上部、<script>~</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;
}

以上で準備OK。
エントリー投稿画面にアクセスして、以下のように表示されていれば完成。


NOWを押してやれば、現在時間が、テキストフィールドに入力されます。

いやー便利。

追記
藤本さん作成の、『作成日時を更新するプラグイン』を、
藤本さんの許可をいただいて、紹介・再配布しています。
MT本体をいじることなく、同じような機能が実装できますので、良ければそちらもどうぞ。
→ NOBODY:PLACE – MUTTER: 作成日時を更新するプラグイン

さらに追記
今さらなんですが…alectropeさんの前にさらに元ネタがあったようでした。

LunaTear: 作成日時の更新機能

これを元に発展させて、分かりやすく解説してくださったのがalectropeさんでした。
改めてお二人に感謝を。

blogだと『ホントの元ネタ』をよく見失いがちなんですけれども、
そこを大事にしていきたいと思ってるので…
遅れすぎですが、追記しておきますです。