DeleteFilesAtRebuildの半端さ加減。
公開日 : 2007-04-25 03:10:49
mt-config.cgiに DeleteFilesAtRebuild 1 と書くと、エントリーを削除したり非公開にした時に静的ファイルを削除してくれる。 ところが「エントリー一覧」からチェックボックスをクリックして「非公開」にしたときは削除してくれない。 半端な実装?
そうそう、環境書くの忘れた。 MT3.34、MAMP+SQLite。他の環境でも確認してから追記します。
あれこれプラグイン入れてる影響がないとはいえませんが、なぜここが気になるかといえば、Hyper Estraierの検索インデックスをリアルタイムに更新するしくみを作っていてひっかかったのだ。 PostDelet_Entry(だったっけ?)コールバックが呼ばれる時、またはPreSave_Entryコールバックが呼ばれる時(かつステータスが公開から非公開に変わった時)にインデックスから該当エントリーを削除するようにしたのだが、ここでひっかかった。 もうひと工夫が必要だわ。
さらに追記:
ファイルが削除されない時は、おそらく、 1.エントリー一覧からチェックボックスでエントリーを選択して「非公開」にした時。(一応解決?) 2.エントリー編集時にカテゴリーを変更した時(且つアーカイブパスにカテゴリー情報が含まれている時) 3.(さらにさらに追記) エントリー一覧→一括画面でカテゴリーを変えた時も2.と同様の状態になる...これがやっかいそうな感じだわ。 basenameが変更された時には正常に削除されている様子。
さらに(さらに)追記:
1, 2は一応解決できたっぽい(東京へ向かう新幹線の道中で書けた)。3はホネのある...ってか要望出した方が賢いか。