コメント入力をプレビューさせる(JavaScript)

友人のblogのコメント入力欄に、プレビュー機能がある。 それも、よくあるような、確認ボタンを押して別画面で確認するのではなくて、 書いた側から、入力フォームの下に表示されるんである。 WYSIWYGなインターフェイス。 …これ、欲しいなぁ… そういうわけで、ドリコムブログをHackしてみました。 (つまり要するにパクリ)

続きを読む

作成日時を更新するプラグイン

先日、「作成日時」を更新するボタン追加というエントリで、 更新ボタンの設置方法を紹介したんですが、 更新時に作成日時を現在時刻に会わせてくれるプラグインがリリースされたので、追加でご紹介。 MT本体をいじるのはちょっと…という人はこれを導入するといいかもしれません。

releasedateプラグイン
作成者: H.Fujimoto(藤本壱) web: Hajime Fujimoto’s Web Site 解説ページ: エントリーの作成日時を公開日時に自動更新するプラグイン DOWNLOAD – releasedate.zip [697byte]
インストール方法::
上記ダウンロードからダウンロードし、ZIPファイルを解凍してください。 出来た releasedate.pl を、MTディレクトリ下の、 pluginsディレクトリにアップデートしてください。 ※なお、このプラグインは、エントリーを保存する前に処理をする 「pre_save」という機能を利用しています。 同じ機能を利用しているプラグインが他にもある場合、 そのプラグインとバッティングして、どちらかのプラグインが動作しない場合があります。 そのときは、リストの15行目(以下)にある「0」を、 「1」?「11」の任意の数に変えて、アップロードしなおしてみてください。
MT::Entry->add_callback("pre_save", 0, $plugin, \&releasedate);
説明::
このプラグインでは、以下の時に作成日時の更新を行います。
1. 下書きのエントリを公開するとき 2. エントリを新規作成して、下書きを経由せずに公開するとき
一度公開したエントリを再保存した場合には、作成日時は更新されません。 (こういう場合は大抵、誤字修正なので更新の必要はなさそうです) 注)MTの一部のバージョンには、確認画面から保存すると、 URIが変わってしまうというバグがあるようです。 その状態だと、一度公開したエントリーの日付も更新されてしまうので注意が必要、とのことです。 (詳しくは作者エントリをご覧下さい)

続きを読む

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

前回、メモ代わりにランダム表示を紹介したのですが、 わかりにくいというご意見をいただいたので解説用に書き直してみます。 基本的には、全エントリーの中から、一定数をアクセス毎に表示するということをやっています。 サンプルはトップページの “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を押してやれば、現在時間が、テキストフィールドに入力されます。 いやー便利。

続きを読む