お知らせ

作って覚えるPHP+MySQLアプリケーション 2008年6月24日

作って覚えるPHP+MySQLアプリケーション」が発売されました。
PHP+MySQL+Smartyを使って、ブログ/ショッピングサイト/マッシュアップの3つのWebアプリケーションを作る方法を解説しています。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

エントリーの作成日時を公開日時に自動更新するプラグイン

| コメント(6) | トラックバック(9)

2005年11月9日 さらに改良したMT3.2専用版をリリースしました。
2005年4月30日 改良版をアップしました。
2005年4月5日 説明を追加しました。

Movable Typeでは、エントリーの日時として表示されるのは、「エントリーを新規作成した時点の日時(作成日時)」です。「エントリーを公開した日時」ではありません。
エントリーを書いてすぐに公開すれば、作成日時と公開日時の差は数分で済むでしょう。しかし、エントリーを少しずつ書いてから公開したり、公開前に何度も推敲したりした場合、作成日時と公開日時の間にかなりのギャップがあくこともあり得ます。

そこで、エントリーを公開する時点で、エントリーの作成日時を公開日時に自動的に変更するプラグインを作成しました。

1.日付更新のタイミング

日時の更新は以下のタイミングで行われます。

1.下書きのエントリーを公開に変えて保存する時点
2,エントリーを新規作成し、下書きを経由せずに保存して、公開する時点

一度公開したエントリーを再編集して保存しなおした場合は、日付の変更は行われません。
「普段は自動更新で良いが、たまには日時を指定したいことがある」という場合は、いったんエントリーを公開した後、エントリーを再度編集し、手動で作成日時を修正して保存しなおせばOKです。

2.インストール

このプラグインのインストール方法は以下の通りです。

1.こちらをクリックしてソースを表示します。
2.1.のソースをコピーし、メモ帳等に貼り付けて、「releasedate.pl」というファイル名をつけて保存します。
3.Movable Typeの「plugins」ディレクトリにアップロードします。

3.他のプラグインとのバッティング

このプラグインは、エントリーを保存する前に処理をする「pre_save」という機能を利用しています。同じ機能を利用しているプラグインが他にもある場合、そのプラグインとバッティングして、どちらかのプラグインが動作しない場合があります。
そのときは、リストの15行目(以下)にある「0」を、「1」~「11」の任意の数に変えて、アップロードしなおしてみてください。

MT::Entry->add_callback("pre_save", 0, $plugin, \&releasedate);

4.エントリーの確認画面で保存する際の問題

現在のMTには、エントリーを再編集して、確認画面で保存すると、エントリーのURLが変わってしまうとことがあるという不具合があります。

参照:「Movable Typeで困っていること続報」(zax様のBlogの「Brilliant Rose」)

その不具合がある状態の場合、エントリーを再編集して確認画面で保存した時点でも、エントリーの日付が更新されてしまいます。
このプラグインをお使いになる場合は、上記の不具合に対する修正も合わせて行っておくことをお勧めします。不具合の修正方法も、上記の参考先エントリーにあります。

5.エントリー読み込み時の問題

このプラグインを入れた状態で、Movable Typeの「エントリーの読み込み」機能を使って、バックアップしておいたエントリーを読み込むと、公開する設定になっているすべてのエントリーの日付が、インポート時の日付になってしまいます。
エントリーの読み込みの機能を使う場合は、このプラグインを「plugins」ディレクトリから一時的に削除して置いてください。

6.エントリーの作成日時を自分で更新する機会が多い方の場合

「作成日時を自動更新したいこともあるが、自分で指定することも多い」という方は、以下の手法の方が便利だと思いますので、そちらもご参照ください。

参照:「「作成日時」を更新するボタン追加」(is様のBlog「NOBODY:PLACE」)

トラックバック(9)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/106.

こちら のエントリの 進化版、公開する瞬間に 作成日時を 自動的に 更新してくれ... 続きを読む

いつもこっそり遊びに行かせていただいているThe blog of H.fujim... 続きを読む

激しく今更なカスタマイズですが(苦笑)。 だいぶ前に、いつもお世話になっている「小粋空間」さんでこの記事を見かけて、便利そうだから即導入して... 続きを読む

カレンダーの月送りに関して前々から興味は持っていたが、あれこれカレンダーのソース... 続きを読む

先日、「作成日時」を更新するボタン追加というエントリで、 更新ボタンの設置方法を... 続きを読む

久しぶりの Movable Type ネタです。 エントリーを作製する時に表示されている「作成日時」は、新規エントリーを開いたときの日時であって、実際に「公開」... 続きを読む

The blog of H.fujimotoではエントリーの作成日時を公開日時に... 続きを読む

記事を作成してる間に時間がたってしまったり、下書きにして保存した後、公開したとき... 続きを読む

MovableTypeはそのままでも十分楽しめるものですが、 表示にこだわると、... 続きを読む

コメント(スレッド6件,コメント6件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 さえら : (無題)

( ^ ^ )/ こんにちは
どんどん新しいプラグインが生まれますね。
いつもご連絡ありがとうございます。
早速使わせていただきます。

No.2 is : (無題)

ご連絡ありがとうございました。
NOBODY:PLACEのisです。
ところでこのプラグインは、現在時に合わせるかどうかを選択する事は出来ないのでしょうか?記事によっては、全て現在時で良いと言うことではありませんので、全てをとなると使いづらいのですが…

No.3  : (無題)

>さえらさん
こんにちは。
早速ご利用いただき、ありがとうございます。

>isさん
こんにちは。
このプラグインでは、現在時にあわせるかどうかを選択することはできません。

エントリー編集フォームに「自動更新する」のチェックボックスを入れて、それがオンの時だけ自動更新するようにできれば良いのですが、それにはMT本体のソースをいじる必要があると思います。
MT本体をいじると、MTをバージョンアップするたびにソースの修正が必要になるので、それは極力避けたいです。

ただ、作成日時の書き換えを行うのは、以下のどちらかの時です。

1.下書きのエントリーを公開するとき
2.エントリーを新規作成して、下書きを経由せずに公開するとき

一度公開したエントリーを再編集して保存しなおしたときには、作成日時は書き換えません。

したがって、現在時でない日付にしたい場合は、一度エントリーを公開した後、作成日時の欄を手動で書き換えて、保存しなおせばOKです。

現在時でない日付を使う頻度が高い場合は、isさんのエントリーにあるように、ボタンで更新する方が便利でしょう。
一方、現在時を使う頻度が圧倒的に高いのであれば、こちらのプラグインを使う方が便利だと思います。

No.4  : (無題)

お知らせ、ありがとうございます。
早速やってまいりました。
導入も簡単で、私のような初心者にも安心して使用できそうです ^^
ぜひ、利用させていただきたいです。

No.5 is : (無題)

なるほど。
そういう機能で有れば、有効かもしれませんね。是非一度使わせていただきたいと思います。
ただ、もし本気でリリースされるので有れば、その辺りの説明を、されておいた方がいいかもしれませんね。僕が気にしてるだけかもしれませんが、どのタイミングで更新されるかは、結構重要な気がします。

No.6 ayano : (無題)

うちのブログにきていただきありがとうございます。
このプラグインは設置するだけで、使えるのがいいですね。
すごく重宝しています。
ありがとうございます。

コメントする