「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
コメント/検索関連テンプレートのPHP化(その1)
Movable Typeのコメント関連のテンプレート(コメント・プレビューなど)と、検索結果のテンプレートは、コメントや検索が行われた時点で、CGIでそのつど出力するようになっています。
そのため、テンプレートの中にPHPのスクリプトを書いても、そのままでは動作しません。
そこで、これらのテンプレートをPHP化するスクリプトを作ってみました。
PHPのスクリプトから、コメントや検索のCGI(mt-comment.cgi/mt-search.cgi)を呼び出してその結果を読み込み、PHPで処理して出力するという仕組みです。
今日は、コメント関連のテンプレートをPHP化する手順を紹介します。
1.スクリプトのアップロード
まず、以下のアドレスに接続して、表示されたソースをすべてコピーし、「mt-phpincgi.php」という名前のファイル名で保存してください。
mt-phpincgi.txt
そして、そのファイルを、Movable Typeのインストール先ディレクトリにアップロードしてください。
2.cgitmpディレクトリの作成
次に、Movable Typeのインストール先ディレクトリの中に、「cgitmp」という名前のディレクトリを作ります。
そして、そのパーミッションを「707」に変えます。
3.個別アーカイブテンプレートのコメント投稿フォームの修正
個別アーカイブテンプレートの中に、コメント投稿フォームの部分がありますが、そこを書き換えます。
まず、<form・・・>のタグを探し、その中にある「action="・・・"」の部分を以下のように変えます。
修正前 : action="<$MTCGIPath$><$MTCommentScript$>"
修正後 : action="<$MTCGIPath$>mt-phpincgi.php"
そして、formタグの後に、以下の行を追加します。
<input type="hidden" name="requrl" value="<$MTCGIPath$><$MTCommentScript$>" />
なお、Movable Type 3.1xの個別アーカイブテンプレートでは、formタグが2箇所あります。
2箇所とも上記の書き換えを行ってください。
4.コメント・プレビューのコメント入力フォームの書き換え
コメント・プレビューページで「確認」のボタンがクリックされた場合、コメント・プレビューテンプレートを元にして、ページが再度動的に生成されます。
そこで、コメント・プレビューテンプレートのコメント入力フォームも書き換えます。
Movable Type 3.2の場合、コメント・プレビューテンプレートの中に、コメント入力フォームのformタグがあります。
前述の2.の手順で、formタグの「action=”・・・”」の部分を書き換え、その後にinputタグを追加してください。
一方、Movable Type 3.1xでは、コメント・プレビューテンプレートのコメント入力フォームは、MTCommentFieldsタグで出力されています。
そこで、lib/MT/Template/Context.pmを書き換えて、このタグの処理を変えます。
このファイルの中に「sub _hdlr_comment_fields {」の部分があり、そこからしばらく下に行くと、コメント入力フォームがあります。
その中のformタグの「action=」の部分を、以下のように書き換えます。
修正前 : action="$path$comment_script"
修正後 : action="${path}mt-phpincgi.php"
また、このformタグの行の後に、以下の行を追加します。
<input type="hidden" name="requrl" value="$path$comment_script" />