まったくチェックしていなかった Movable Type の新しいバージョン3.3ですが、ふと見てみたところ、エントリを削除や未公開にしたときにファイルも削除してくれる機能が追加されていたことに気づきました。
この機能をONにするには、mt-config.cgi に以下のように追記します。というか、これを書かないとこの機能はONにならない。
DeleteFilesAtRebuild 1
これで、例えば http://example.com/blog/2006/01/01.html として一度公開した(static なファイルが作成された)エントリを削除や非公開にして再構築すると、01.html そのものを削除してくれます。
3.2までは、ブログ内の他の記事にある 01.html へのリンクを消すだけで、ファイルそのものは残っていたため、パーマリンク http://example.com/blog/2006/01/01.html をブックマークした人などにはそのまま見えてしまっていました。(ちなみに、消すのはファイルだけで、blog/2006/01 ディレクトリは残ります)
3.3からmt-config.cgi はかなり省略され、設定できる項目は http://www.sixapart.jp/movabletype/manual/config を見てね、ということになりました。このページ要チェック。
ぼくが仕事でMTを使う時、Blogツールとして使うというより、スタティックHTML作成用として使うことが多かったため、このCMS機能の拡張はかなりうれしい。前仕事で使わせてもらった時は、同じことをするプラグインを探しまくったのだけど、結局探せなく、かなりごりごりなモジュールを書いて対応した記憶が。
MTは投稿者の数でライセンスが決まってくるので、投稿者が不特定多数の場合はコスト的に別の選択肢をとる場合もあるけど、投稿者がクライアントの特定の管理者のみ、と言った場合はかなりコストパフォーマンスの良いソリューションだったりします。MTは管理画面がきれいなので、ちょっとカスタマイズするだけでそのままクライアント管理者向け管理画面として使えるので。
以前Ajaxなサイトを開発した時は、管理者が記事を投稿するたび、各記事に対しスタティックなHTMLとAjax用Jsonファイルをいくつか書き出す、ということをしたかったのですが、MTを使ったのでそれぞれのテンプレートを書くだけでよかったためラクチンでした。
あと3.3から今まで管理画面をカスタマイズするのに必須だったプラグイン BigPAPI が標準機能となっているそうです。軽くしか見てないのですが、MT::App::CMS に Transformer という名前で吸収されてるみたいです。
BigPAPIで
MT->add_callback('bigpapi::template::edit_entry', 9, $plugin, \&template_filter);
とかしていたことを、MT3.3では
MT->add_callback('MT::App::CMS::AppTemplateSource.edit_entry', 9, $plugin, \&template_filter);
とする感じです。
3.3は BigPAPI とは相性悪そう?ですので、すでにBigPAPI向けに書いてあるプラグインを手を入れずに使いたい場合は素直に3.2を使う方が良いかも。新規で何かスタティックファイル作成したい系の案件があるときは3.3を使ってみようかな、と思っています。
参考
http://www.h-fj.com/blog/archives/2006/07/01-140332.php