記事本文
カスタマイズメモ
Movable Type をちょくちょくカスタマイズしていたんですが、それの記録を取っていないことに気付いたので、ここでメモしておこうと思います。 別件で Movable Type を新規インストールしなければならなくなるだろうし、その時もきっと同じカスタマイズを施すだろうし、 hxxk.jp の分もアップグレード時にまたカスタマイズをする必要があるし、ということで。
ただし、参考記事をそのまま用いてカスタマイズしており、話題の掘り下げを行っていないため、考察やトラックバック送信などは特に行いません。
コメント欄の名前のアンカーの target="_blank" を外す
コメントを投稿する際に URI を記入していると、コメント投稿後に名前にアンカーが付与されます。
そのアンカーにはお節介にも target="_blank" を伴って生成されるため、 XHTML 1.0 Strict や XHTML 1.1 を宣言している Movable Type 使用者には悩みの種となります。
デフォルトテンプレートは XHTML 1.0 Transitional を宣言しているため、 target="_blank" を指定するのは間違いではありません。
Strict DTD の存在を考慮していないという点で、システムの設計としては片手落ちではあるのですが。
- install directory/lib/MT/Template/Context.pm を開く
- target="_blank" をキーワードにソース内を検索
target="_blank"の記述を削除- Context.pm をサーバに put
- 再構築
Context.pm の記述は Movable Type のバージョンによって異なるため、何行目という記述を参考にするよりもソース内の検索を行った方が確実だと思います。 ( イソムラさん ( 404 ) の書き方がダメと言っているのではありません、念のため。 )
コメントスパム対策その 1
コメントスパムの多くは欧米圏からやってくるので、半角英数字のみのコメントを許可しないという設定。 閲覧者のターゲットに日本人しか想定していないなら、かなり有効な手段だと思います。
- install directory/mt-comments.cgi を開き、参考リソースのコードを記述
- mt-comments.cgi をサーバに put
試しに半角英数字のみのコメントを投稿してみると、しっかりと 500 Internal Server Error が返ってきました。
コメントスパム対策その 2
たいがいのfloodスクリプトは、mt-comments.cgi を決めうちしてるとおもう
という記述に
「ああ、確かにそんな気がするなあ」
と思ったので早速実施。
- install directory/mt.cfg を開く
- CommentScript をキーワードにソース内を検索
mt-comments.cgiを任意の名前に変更し、 mt.cfg をサーバに put- install directory/mt-comments.cgi を前項の名前に変更し、サーバに put
- 再構築
トラックバックを送信する際の URI の拡張子を外す
drry+@->Weblog の URI は hxxk.jp と同じ yyyy/mm/dd/HH/MM 形式で、かつ MultiViews を用いて拡張子を外しているのです。 しかし、トラックバックを送信する際の URI のみ .php がついていたのですが、この度それを外す方法が提案されましたので適用。
- install directory/lib/MT/App/Trackback.pm を開く
- MT::Util::is_valid_url をキーワードにソース内を検索
- その一行下に
$fixed =~ s/\.php$//;を追加し、 Trackback.pm をサーバに put
これはトラックバックを受信した時の話だったので、撤回。 この記述を適用してしまうと、拡張子を .php として Movable Type を構築しており、かつ MultiViews を有効にしていないサイトからトラックバックが送信された場合に、トラックバックを送信してきた記事の URI が実在しないものになってしまいます。 もしこの記事をご覧になってカスタマイズを行った方がおられましたら、元に戻すことを強く推奨します。
drry+@->Weblog - 今度こそ Trackback で送信する URI から拡張子を抜くにて改めて .php を外す方法が提示されています。
将来的には MT Plugin として公開したい
とのことなので、期待しつつ MT.pm 自体をカスタマイズ。

