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 の設定文字列を変更すれば、他のなエラーをひっかけられるかもしれません。
- MovableTypeで削除したコンテンツデータや記事を復元できる「Trashプラグイン」
- Movable Typeのデータ更新を抑止する「DataUpdateSuppressorプラグイン」
- Movable Typeのウェブサイト管理者にブログ作成権限を与える「CreateBlogPermissionプラグイン」
- Movable Typeでダッシュボードのサイト情報期間を変更できる「SiteStatsTermChangerプラグイン」
- Movable Typeの管理画面のtitle要素を変更する「TitleChangerプラグイン」
- Movable Type管理画面のセッションタイムアウトを延長する「SessionTimeoutExtenderプラグイン」
- Movable Type管理画面で左右のメニューを非表示にする「MenuHiddenerプラグイン」
- Movable Typeのテンプレート編集画面でシンタックスハイライトを無効にする「InvalidateCodeMirrorプラグイン」バージョンアップ(v0.12)
- Movable Typeでログイン後の管理画面を変更する「ScreenChangerプラグイン」
- Movable Typeのテーマにウェブページを利用できる「PageImExporterプラグイン」バージョンアップ(カスタムフィールド対応)
- Movable Typeのテンプレート編集画面でシンタックスハイライトを無効にする「InvalidateCodeMirrorプラグイン」バージョンアップ(v0.11)
- Movable Typeの記事一覧画面にアイテムを表示する「EntryAssetListingプラグイン」バージョンアップ
- Movable Typeのテーマにブログ記事を利用できる「EntryImExporterプラグイン」バージョンアップ(カスタムフィールド対応)
- Movable Typeのテーマにブログ記事を利用できる「EntryImExporterプラグイン」バージョンアップ
- Movable Typeでアイテムアップロード時にリサイズ可能な「UploadImageResizerプラグイン」バージョンアップ
≫ Unrecognized Tags再び from WolaWola
Unrecognized Tagsが、バージョンアップしているようなので、取り上げます。 [続きを読む]
こんにちは、yujiroさん。
メッセージのひっかけ方が、いかにもでしたよね。このプラグイン。
結局あまり美しくない対応方法になってしまいます。
>oscarさん
こんばんは。
たしかに仰るとおりですね…。