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

LunaTear: 作成日時の更新機能
一気にエントリを書き上げることが出来ない場合、下書きモードはベンリです。ただ、最初にそのエントリを作った日時が「作成日時」に入ってしまっているのが難点といえば難点。手でちまちま書き換えるのもメンドウなので、どうにかできないかなー、と考えてたら、JavaScript で更新ボタンを付けちゃおう、という手法を発見。以下、実際にやってみた手順。


1. “tmpl/cms/edit_entry.tmpl” を適当なテキストエディタで開きます。できればファイルのコピーをとっておきましょう。
2. エディタの検索機能で


<input class="text-short" name="created_on_manual" value="<TMPL_VAR NAME=CREATED_ON_FORMATTED>"><p></td>

を検索。たぶん467行目辺りにあります。
3. 上で検索した内容をまるまる


<input name="created_on_manual" size="21" value="<TMPL_VAR NAME=CREATED_ON_FORMATTED>"><input onClick="nowDate()" type="button" value="Now"></td>

に置き換えます。
4. あとは以下の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;
}

5. 編集画面を開いてみて、「作成日時」の右の所に”Now” の文字が表示されればたぶん成功です。
ボタンを押してみて左の日時が現在の時刻に更新されれば成功です。おめでとう!!
ついでにこのスクリプトを流用して、追記の時にラクできるように編集画面の右上に”TIME” ボタンを付けてみました。微妙にベンリになったかも。

コメント

  1. ミロク より:

    「作成日時」を更新するボタンを使っていましたが、MT3.2になってから動かなくなってしまいました。もしよかったらMT3.2対応版を作っていただけると助かります。

  2. カネダ より:

    > ミロク さま
    コメントありがとうございます。
    ウチはいまだにMT2.661 のままなので、MT3.2 ではどうなっているのか分からないのですが、私の記事を参考にしてMT3.x 対応版を作られた方がいらっしゃいますので、そちらを参考にしてみてください。
    下のトラックバック一覧にも載っていますが、
    NOBODY:PLACE – MUTTER: 「作成日時」を更新するボタン追加
    http://www.nobodyplace.com/mutter/archives/200502/241221.php
    です。

  3. is より:

    こんにちは、初めまして。
    NOBODY:PLACEのisです。
    ご紹介していただいてるようで…恐縮です。
    (今、気付きました;)
    ありがとうございます。