「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
リアルタイム再構築プラグイン(その1)
2006年11月6日 若干バージョンアップしました。
当Blogでは「Perl版ダイナミック・パブリッシング」を公開していますが、それとよく似たものとして、「リアルタイム再構築プラグイン」を公開します。
数回に分けて、このプラグインの利用方法を紹介します。
1.概要
リアルタイム再構築プラグインは、Perl版ダイナミック・パブリッシングと同様に、アクセスがあった時点でページを再構築するものです。
任意のテンプレートを再構築することができますが、基本的には、アクセスがあるたびに変化させたい部分だけを再構築して、Ajax等を利用して他のページに読み込ませるために使うことを想定しています。
ただし、Perl版ダイナミック・パブリッシングとは違い、ページをキャッシュする機能はなく、常に最新のデータに基づいたページを出力します。
また、PHPのスクリプトが含まれているテンプレートでは、そのスクリプトは実行されず、そのスクリプトがそのまま出力されます。
なお、このプラグインはMovable Type 3.2以降で利用することができます。
ただし、Movable Type 3.3の日本語化対応機能を使っているので、Movable Type 3.2ではメッセージが英語になります。
2.インストール
このプラグインは、以下のアドレスからダウンロードすることができます。
ファイルを解凍すると、「RealtimeRebuild」というフォルダができます。
このフォルダを丸ごと、Movable Typeの「plugins」ディレクトリにアップロードします。
そして、「RealtimeRebuild」ディレクトリの中の「mt-realtime-rebuild.cgi」のパーミッションを「755」などに変え、実行可能にします。
3.リアルタイム再構築を許可するテンプレートの設定
このプラグインでは再構築した内容をそのまま出力します。
前述したように、PHP化しているページでは、PHPのスクリプトもそのまま出力されます。
そのスクリプトの中に、パスワード等のセキュリティに関わる情報が入っていると、その情報を見られる恐れがあります。
そこで、初期状態では、すべてのテンプレートのリアルタイム再構築を禁止するようになっています。
リアルタイム再構築を行う場合は、それを許可するテンプレート設定します。
ブログの設定のページで「プラグイン」タブを開き、RealtimeRebuildプラグインところで「設定を表示」のリンクをクリックすると、テンプレート名が一覧表示されます。
その中で、再構築を許可するテンプレートをクリックして選択し、「変更を保存」ボタンをクリックします。
なお、複数のテンプレートの再構築を許可する場合は、Ctrlキーを押しながらテンプレートをクリックします。
なお、Perl版ダイナミック・パブリッシングも導入している場合「sqlsub_mysql.php」または「sqlsub_pgsql.php」のテンプレートには、データベースのパスワードが含まれます。
Perl版ダイナミック・パブリッシングをご利用の方は、このテンプレートは必ず再構築を許可しないように設定しておいてください。
4.動作のテスト
インストールが終わったら、動作をテストしてみます。
インデックステンプレートを1つ作成し、以下のタグを入れてみてください。
<a href="<$MTRealtimeRebuildLink tmpl_name="メインページ"$>">MainPage</a>
テンプレートを保存して再構築した後、できたページを開き、「MainPage」のリンクをクリックします。
メインページがその場で再構築されて表示されれば、動作はOKです。
ただし、前述したように、PHPの部分は実行されません。そのため、メインページをPHP化している場合、表示が乱れることがあります。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
中村 ミノル
お世話になります。
「4.動作のテスト」により動作確認しましたが、
「RealtimeRebuild.plの61行目でエラー」みたいなメッセージが出て
止まりました。
MT3.3で、文字コードがEUC-JPで運用していますが、何か問題があるのでしょうか?
匿名
先のコメントに追加情報です。エラーは次の通りでした。
テンプレートを読み込むことができませんでした。 at /virtual/○○○/home/mt/plugins/RealtimeRebuild/lib/RealtimeRebuild.pm line 61.
中村 ミノル
もう一度やってみました。先のコメントに追加情報です。エラーは次の通りでした。
テンプレートを読み込むことができませんでした。 at /virtual/○○○/home/mt/plugins/RealtimeRebuild/lib/RealtimeRebuild.pm line 61.