UnrecognizedTags プラグインを日本語環境で利用する

UnrecognizedTags プラグインを日本語環境で利用する

Posted at June 8,2009 12:03 AM
Tag:[MovableType, Plugin, UnrecognizedTags]

Movable Type のテンプレート上にある不明なタグを管理画面上に一括表示してくれる、UnrecognizedTags プラグインを紹介します。このプラグインは一度インストールして動作しないのでそのまま放置していたのですが、ソースを改変することで動作が確認できました。

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 の設定文字列を変更すれば、他のなエラーをひっかけられるかもしれません。

関連記事
トラックバックURL


トラックバック

Unrecognized Tags再び from WolaWola
Unrecognized Tagsが、バージョンアップしているようなので、取り上げます。 [続きを読む]

Tracked on June 29, 2009 10:02 PM
コメント

こんにちは、yujiroさん。
メッセージのひっかけ方が、いかにもでしたよね。このプラグイン。
結局あまり美しくない対応方法になってしまいます。

[1] Posted by oscar logo : June 8, 2009 12:42 PM

>oscarさん
こんばんは。
たしかに仰るとおりですね…。

[2] Posted by yujiro logo : June 14, 2009 3:19 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)