先日、del.icio.usのブックマークを表示するためにDeliciousJSONプラグインを導入したのですが、ひとつ困ったことが起こりました。これまではJavaScriptで表示していたのでリアルタイムに情報が更新されて、ブックマークが自動的に記事としてリストアップされて(゚д゚)ウマーだったのですが、プラグインによる表示ではテンプレートが再構築されるまでは最新の情報に反映されないのです。これは何もDeliciousJSONプラグインだけに限ったことではなくて、たとえば天気表示のプラグインとかそういうのも同様です。プラグイン自体にデータを定期的に読みに行くような機能がないためにこういう事態になってしまいます。導入が簡単な分、落とし穴もあるということです。
なので、対策としてmt-rebuild.plを用いてテンプレートを自動で再構築させることにしました。実はこのテクニックはかなり前から知ってました。
導入するにあたって
mt-rebuildの動作にはCRONというサーバーの機能を利用できることが必須です。さくらインターネットを利用している場合はオッケーですが、サーバーによっては利用ができないところもあるみたい。事前に利用可能かどうか調べておきます。
mt-rebuild.plの入手
次のリンク先よりダウンロードします。
mt-rebuild.plはmt.cgiと同じディレクトリにアップロードし、パーミッションを755に設定。700でも動くかもしれないけど、僕は755にしてます。
ひとまずこれで準備は完了。とても簡単です。
CRONの設定
さくらの場合はコントロールパネルからCRONの設定ができます。今回、僕の場合はDeliciousJSONプラグインを更新するだけでよいので、phpインクルード元のテンプレートであるdeliciousという名前のカスタムインデックステンプレートのみを再構築することにしました。実行するコマンドには次のとおり記述しました。
/home/carnival/www/mt/mt-rebuild.pl -mode='index' -blog_id=1 -template='delicious'
ご覧になっていただければ把握できるかと思いますが、パラメーターでテンプレートの種類とブログのIDを設定し、テンプレートを選択します。これで、mt-rebuild.plはdeliciousという名前のテンプレートのみを再構築してくれます。
実行の頻度はとりあえず6時間毎に設定。「月」と「日」を*(アスタリスク)にして、「時」を*/6とするとその設定になります。
テストしてみましたがどうやらちゃんと動いているようです。もしうまく動かない場合はたぶんパーミッションの設定がうまくいってないか、記述ミスしたかのどちらかなのでもう一度見直してみましょう。
これでようやく自動でテンプレートが更新され、del.icio.usのブックマークが表示されるようになりました。やれやれ、結構大変だったな。