エントリー本文
UnrecognizedTags プラグインを日本語環境で利用する
Movable Type のテンプレート上にある不明なタグを管理画面上に一括表示してくれる、UnrecognizedTags プラグインを紹介します。このプラグインは一度インストールして動作しないのでそのまま放置していたのですが、ソースを改変することで動作が確認できました。
で当初、プラグインの紹介記事にしようと思いましたが、タイムリーに「WolaWola - Unrecognized Tags」で記事が修正されていたので、内容を変更して紹介します。プラグインの概要については、「WolaWola - Unrecognized Tags」をご覧ください。
1.日本語環境で利用する場合のカスタマイズ
plugins ディレクトリ配下の UnrecognizedTags/lib/UnrecognizedTags/CMS.pm を修正します。CMS.pm の赤色部分を青色部分のように変更します。
変更前
...前略...
while (my $tmpl = $iter->()) {
$tmpl->compile;
if ($tmpl->{errors} && @{$tmpl->{errors}}) {
#print "Errors in " . $tmpl->id . "'" . $tmpl->name . "' (" . $tmpl->blog_id . ")\n";
my @msgs = map { ($_->{message} =~ /unrecognized/mi) ? $_->{message} : () } @{$tmpl->{errors}};
for my $msg (@msgs) {
my ($tag) = ($msg =~ /^<([^>]+)>/);
$tags->{$tag} ||= {};
$tags->{$tag}->{$tmpl->id}++;
}
$tmpls->{$tmpl->id} = $tmpl;
$blogs->{$tmpl->blog_id} ||= MT::Blog->load($tmpl->blog_id);
}
}
...後略...
変更後
...前略...
while (my $tmpl = $iter->()) {
$tmpl->compile;
if ($tmpl->{errors} && @{$tmpl->{errors}}) {
#print "Errors in " . $tmpl->id . "'" . $tmpl->name . "' (" . $tmpl->blog_id . ")\n";
my @msgs = map { ($_->{message} =~ /は存在しません/mi) ? $_->{message} : () } @{$tmpl->{errors}};
for my $msg (@msgs) {
my ($tag) = ($msg =~ /^<([^>]+)>/);
$tags->{$tag} ||= {};
$tags->{$tag}->{$tmpl->id}++;
}
$tmpls->{$tmpl->id} = $tmpl;
$blogs->{$tmpl->blog_id} ||= MT::Blog->load($tmpl->blog_id);
}
}
...後略...
修正したファイルは必ずUTF-8で保存してください。この変更を行なわないと、プラグインで追加された管理画面には何も表示されません。
2.プラグインの動作確認方法
任意のテンプレートに <mt:hoge /> などの存在しないテンプレートタグを書き、システム管理画面の「ツール」→「不明なタグ」を選択してください。下のように表示されればOKです。

CMS.pm の設定文字列を変更すれば、他のなエラーをひっかけられるかもしれません。
- ImageSizeGenerator プラグイン v0.03
- CKEditor for Movable Type 5.0
- ImageSizeGenerator プラグイン
- DirectiveViewer プラグイン v0.02
- DirectiveViewer プラグイン
- InvalidateCodeMirror プラグイン
- EditFieldController プラグイン v0.02
- EditFieldController プラグイン
- PowerEdit プラグイン v0.08
- PowerEdit プラグインでカスタムフィールドを表示する(テキスト編)
- Better File Uploader プラグイン
- Bob the Rebuilder プラグイン
- UserNameEditController プラグイン v0.03
- UserNameEditController プラグイン v0.02
- ExcerptRichText プラグイン v0.03
- PowerEdit プラグイン v0.07
- ExcerptRichText プラグイン v0.02
- ExcerptRichText プラグイン
- PowerEdit プラグイン v0.06
- UserNameEditController プラグイン
≫ Unrecognized Tags再び from WolaWola
Unrecognized Tagsが、バージョンアップしているようなので、取り上げます。 [続きを読む]
こんにちは、yujiroさん。
メッセージのひっかけ方が、いかにもでしたよね。このプラグイン。
結局あまり美しくない対応方法になってしまいます。

