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

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" ボタンを付けてみました。微妙にベンリになったかも。