エントリーのランダム表示【詳細】

前回、メモ代わりにランダム表示を紹介したのですが、 わかりにくいというご意見をいただいたので解説用に書き直してみます。 基本的には、全エントリーの中から、一定数をアクセス毎に表示するということをやっています。 サンプルはトップページの “RAMDOM 5 MUTTERS” にあります。 全体の手順としては以下の通りです。

  1. MTRandomEntriesプラグインのインストール / 設定
  2. アクセス毎に表示させるプログラムの作成 / 導入
ランダムに選択するタイミングを、『再構築』でよい、という方は1まででOKです。 PHPを利用して、『アクセス時に』ランダム選択したいという方は、2を参考にしてください。

続きを読む

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

お知らせ: 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を押してやれば、現在時間が、テキストフィールドに入力されます。 いやー便利。

続きを読む