以前のエントリで拙いながらも Callback.pod を訳してみたのですが、その甲斐あってか Movable Type のクローン機能におけるコールバックの様子がわかってきました。というか、「lib/MT/Blog.pm」を見ればすぐわかるんですけど。
で、Movable Type 4のクローン機能でエントリを複製させない方法でも書いたのですが、ブログの複製の際にエントリやカテゴリを複製する意味がよくわからなかったので、エントリやカテゴリを複製させないプラグインを作ってみました。心をこめて作りました。簡単でした。
以下のリンクよりダウンロードしてください。
ClonedBlogCleaner プラグイン (ver.1.0)
解凍してできた ClonedBlogCleaner フォルダを、Movable Type の plugins ディレクトリにアップロードして、クローン機能使用時にエントリやカテゴリを複製したくないブログのプラグイン設定画面に移動します。
エントリを複製したくない場合、ClonedBlogCleaner プラグインの「Cloning Entries」項目の「No Need」にチェックを入れます。カテゴリを複製したくない場合は、同様に「Cloning Categories」項目の「No Need」にチェックを入れます。いずれか片方のみのチェクでも問題はありませんが、カテゴリだけを複製しないことに意味があるのかどうかは疑問です。カテゴリのみを複製しなかった場合、複製後のブログにおいて、エントリはカテゴリに属さない状態になっています。両方にチェックが入っていなければ、このプラグインは動作しません。
クローン機能については、post_clone すなわちクローン機能実行後にしかコールバックを発生させるタイミングがありません。なので、このプラグインはクローン機能をひととおり実行後(エントリの複製も行われた後)、エントリを削除します。エントリの削除とともに、エントリへのコメントや、どのカテゴリに割り当てられていたかの placement データなども削除されます。カテゴリを削除する場合にも、カテゴリそのものの削除に加え、placement データも削除します。
あと、当たり前と言えば当たり前ですが、Movable Type 4 以降のみ動作します。進捗状況や実行結果に関しては下図を参照してください。
post_clone すなわちクローン機能実行後にしかコールバックを発生させられない、ということは、クローン機能はいったん実行されてしまうということです。ClonedBlogCleaner プラグインはその進捗状況および実行結果をクローン機能の実行結果として出力しますが、本来のクローン機能の進捗状況および実行結果、つまりエントリやカテゴリの複製結果も表示されているので、紛らわしいと言えば紛らわしいかもしれません(下図)。いったん表示された本来のクローン機能の実行結果を消すことはできるのですが、表示されないようにすることはできないようなので、特に処理はしていません。その点ご了承ください。

GNU General Public Licenseとします。
不具合報告や上記問題点への対処法含め、フィードバックいただけるとうれしいです。ぜひ3xstars@gmail.comまでお送りください。人生相談は20代の女性に限りますが、それ以外は応相談(※フィードバックは女性でなくともかまいません)。
Comments