ほぼ指定日投稿(JavaScript版V2.10)

Movable Typeには「指定日投稿」の機能があり、指定した日時に自動的にエントリーを投稿することができます。
ただし、そのためには指定日投稿のスクリプトを定期的に実行する必要があります。
cronを使えないサーバーだと、スクリプトを定期的に自動実行することができません。

この問題を解決するために、「ほぼ指定日投稿」(JavaScript版)というプラグイン公開していました。
ブログに誰かがアクセスしてきたときに、指定日投稿の処理を行うというものです。
このプラグインを若干改良し、以前のバージョンよりも、幾分簡単に設定できるようにしました。

なお、既存のバージョンをお使いの方は、バージョンアップするとテンプレートの書き換え等が必要になりますので、既存のバージョンをそのままお使いください。

1.プラグインのダウンロード

まず、以下のアドレスからプラグインのファイルをダウンロードします。

RunPeriodicTasks_2_10.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ファイルを解凍すると、「plugins」と「mt-static」の2つのフォルダができます。
これらのフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。

2.初期設定

このプラグインを使うブログで、初期設定を行います。
ブログのプラグイン設定のページを開き、RunPeriodicTasksプラグインの設定を開きます。
そして、以下の各項目を設定します。

設定項目内容
スケジュールタスクを実行しているときに表示するHTML指定日投稿の処理が行われている間に、ブログのページに表示する内容を指定します。
スケジュールタスクが実行されたときに表示するHTML指定日投稿の処理が終わったときに、ブログのページに表示する内容を指定します。
スケジュールタスクがスキップされたときに表示するHTML指定日投稿は、15分に1回だけ行うようになっています。前回の実行から15分たっていない場合は、ここで指定したHTMLがブログのページに表示されます。
Ajaxを使用通常はオンにしておきます。
ただし、ブログのドメインとMTのドメインが異なる場合は、Ajaxを使うことができませんので、その場合はオフにします。
Ajaxを使えない例:ブログのドメインが「blog.sample.com」で、MTのドメインが「www.sample.com」の場合

初期設定が終わったら、「変更を保存」のボタンをクリックします。
なお、設定を全く変えない場合も、変更を保存する必要があります。

↓初期設定
runperiodictasks.png

3.テンプレートの書き換え

次に、指定日投稿を起動するためのタグを、テンプレートに追加します。
メインページやブログ記事など、アクセスが多いページのテンプレートで、以下のタグを追加します。

<$MTRunPeriodicTasksJS$>

このタグを追加した位置に、指定日投稿の結果(手順2.で設定したHTML)が表示されるようになります。

テンプレートの書き換えが終わったら、そのテンプレートを再構築します。
これでこのプラグインが動作するようになります。

なお、Ajaxを使わない場合、このタグの位置でCGIにアクセスし、CGIの結果が返ってくるまでページの読み込みが止まります。
そのため、ページの先頭の方にこのタグを入れると、ページの表示が重くなったように見えます。
Ajaxを使わない場合は、MTRunPeriodicTasksJSタグはテンプレートのなるべく最後の方に追加するようにします。

4.指定日投稿の結果を画像で表示する

「mt-static」→「plugins」→「RunPeriodicTasks」→「images」ディレクトリに、指定日投稿の結果を表す画像もアップロードされます。
手順2.で、これらの画像を表示するように設定しても良いでしょう。

5.ライセンス

このプラグインはMITライセンスで公開します。
商用版MTおよびMTOSでお使いいただくことができます。