RebuildIndexFilter プラグイン v0.02

RebuildIndexFilter プラグイン v0.02

Posted at September 12,2008 12:31 AM
Tag:[MovableType, Plugin, RebuildIndexFilter]

先日公開した「RebuildIndexFilter プラグイン」をバージョンアップしました。

改善点は次の通りです。

  • 本格版で複数のイベントを指定できるようにしました
  • スクリプトファイルの変更に対応できるようにしました(本格版・簡易版)
  • 簡易版のプラグイン名を RebuildIndexFilter Lite に変更しました

プラグインは下記のページよりダウンロードしてください。

RebuildIndexFilter プラグイン

アドバイスくださった壱さん、およびご要望くださった bzbell さん、ありがとうございました。

本格版のイベント複数指定は次のように変更しました。

変更前
再構築イベントの種類(変更前)

変更後
再構築イベントの種類(変更後)

簡易版は、MTIgnore タグを複数設定すれば同じ効果があります(多分)。

関連記事
トラックバックURL


コメント

こんばんわ^^

さっそくプラグインを更新してコメントとトラックバックに両方にチェックして様子を見たところ、コメント投稿されたにも関わらずテンプレートが再構築されてないようです。

  1. 追加された mt_template_ext テーブルを確認したところ、template_ext_template_id に目的のテンプレート ID のレコードは追加されてましたので、単純に rebuild_index_filter コールバックが 0 で返ってるように見受けられました。 ※スクリプト名称とマッチしてないのか、再構築イベントとマッチしてない!?
  2. また、違ってたらごめんなさいなのですが、template_ext_rebuild_event には 'comment' しかなく、'ping' は追加されてなくっても問題ないでしょうか。

以上、お手数ですがよろしくお願い致します。

[1] Posted by bzbell logo : September 13, 2008 8:44 PM

いつもカスタマイズではお世話になっております。

さっそく「RebuildIndexFilter」を試させていただきました。

当方はブログを投稿する際、ほとんどが指定日投稿なのですが、
指定日投稿の場合、このプラグインで「ブログ記事の投稿/編集」でチェックしたものが再構築されませんでした。

なにか原因等は考えられますでしょうか?

よろしくお願いいたします。

[2] Posted by showBOO logo : September 13, 2008 10:13 PM

>bzbellさん
こんばんは。
ご質問の件で確認ですが、テンプレート編集画面の「再構築イベント」で複数の項目をチェックして一旦保存した後、再表示された画面にはチェックした項目がそのまま表示されていますでしょうか(「すべて」をチェックした場合を除く)。
チェックした項目が反映されていない場合、0.03(下記)を作成しましたので、該当のテンプレートのチェックを一旦外して保存し、再度複数項目をチェックしてみてください。

http://www.koikikukan.com/archives/download/plugin/RebuildIndexFilter/0.03/RebuildIndexFilter.zip

また、

1ですが、スクリプト(mt.cgi/mt-comments.cgi/mt-tb.cgi)の名称は変更されてますでしょうか?
2は問題ありです。チェックした項目が正常に保存されていません。実際には「comment,ping」という形式で保存します。

>showBOOさん
こんばんは。
ご質問の件ですが、このプラグインは管理画面やコメント・トラックバックで起動されたCGIのスクリプト名(mt.cgi/mt-comments.cgi/mt-tb.cgi)を元情報にしているので、バックグラウンドで起動した場合にはスクリプト名が取得できないのが原因と思われます。
別途検討致します。

[3] Posted by yujiro logo : September 13, 2008 11:01 PM

さっそくの返答ありがとうございます。

> テンプレート編集画面の「再構築イベント」で複数の項目をチェックして一旦保存した後、再表示された画面にはチェックした項目がそのまま表示されていますでしょうか(「すべて」をチェックした場合を除く)。

はい。コメント、トラックバック共にチェックされています。

> ・・・名称は変更されてますでしょうか?

あ・・・変更してます (; ̄∇ ̄A

試しに 0.03 で確認してみますね。

[4] Posted by bzbell logo : September 13, 2008 11:31 PM

度々すいません。

ver 0.03 を試したところ、データベース中には comment, ping と両方かきこまれました。再構築はされませんでした。

プラグインの実行ログを取得したところ、rebuild_index_filter 内の $rebuild_event が (comment,ping) 時において、$script の値は mt-comment.cgi ではなく mt.cgi でコールバックされてるようです。
結果、$comment_script にマッチングしないために再構築されてないようです。

以上ご報告まで (>∀< )

[5] Posted by bzbell logo : September 14, 2008 12:03 AM

>bzbellさん
こんばんは。
すいませんが、こちらの環境(ローカルPCおよびさくらインターネット)で動作確認した限りでは、$script には mt-comments.cgi や環境変数 CommentScript で変更した CGI ファイル名が設定されるため、再現が困難です。

補足ですが、このプラグインは次のような制御を行っています。

$script の値が mt.cgi(AdminScriptの値)であれば、ブログ管理画面からの操作と認識して、実行した query に'comment' が含まれていればコメント編集とみなして、再構築イベントに'comment'が設定されていれば 1 を返却します。query に'ping' が含まれていればトラックバック編集とみなして、再構築イベントに'ping'が設定されていれば 1 を返却します。

$script の値が mt.cgi(AdminScript)でなければ、次の制御に移行し、$script の値が mt-comments.cgi(CommentScriptの値)であればコメント投稿とみなし、再構築イベントに'comment'が設定されていれば 1 を返却します。トラックバック受信時もこれとほぼ同じ制御です。

頂いたコメントで「$script の値は mt-comment.cgi ではなく mt.cgi」ということなので、$ENV{'SCRIPT_NAME'} (実行した CGI プログラムのルートディレクトリ以降のパス情報)に mt.cgi(AdminScriptの値)が含まれているということになります。

こちらでは「既定のブログ」や当ブログのテンプレートセットのコメントフォーム、具体的には、4.2 標準のコメントフォーム(コメントフォームの form 要素の action 属性に CommentScript に対応するファイルが設定されている)で投稿したものでしか、コメント投稿による再構築を確認しておりません。
的外れかもしれませんが、上記のようなコメントフォームでない(?)場合、うまく $script が取得できていないのかもしれません。
それではよろしくお願い致します。

[6] Posted by yujiro logo : September 14, 2008 2:19 AM

おはよございます^^

原因!? が分かりました。
どうやらコメントの即時公開設定に関連してるようです (>∀< )

投稿コメントの「即時公開あり」だと $script には mt-comment.cgi が入っており再構築も行われました。
ですが、「即時公開なし」設定だと $script には mt.cgi が入ってくるようです。

以上ご連絡まで。

[7] Posted by bzbell logo : September 14, 2008 10:06 AM

早々のお返事ありがとうございます。

>バックグラウンドで起動した場合にはスクリプト名が取得できないのが原因と思われます。

了解しました。

一端プラグインを無効にしたいと思います。

指定日投稿でも有効になるよう、ご検討頂けたらと思います。


[8] Posted by showBOO logo : September 14, 2008 10:07 AM

>bzbellさん
こんばんは。
1のコメントに書かれていた「コメント投稿の不具合」ではなく、「コメント公開時の不具合」ということで理解致しました。
バージョンアップ版をエントリーしましたのでお試しください。
それではよろしくお願い致します。

[9] Posted by yujiro logo : September 15, 2008 2:40 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)