Cut First Char を Movable Type 3.2x で使う場合の注意点

http://hxxk.jp/2006/02/24/2054

記事データ

投稿者

望月真琴

投稿日時

2006-02-24T20:54+09:00

タグ
概要

「ブログ自由自在 Movable Type 上級カスタマイズ術」に書かれている Cut First Char プラグインは、カテゴリを任意の順番で並べる際に重宝しますが、書籍のソースだと Movable Type 3.2x 以降では動作しません。

リプライ

リプライはまだありません。

記事本文

Cut First Char は Movable Type 3.2-ja-2 では使えない ?

以前、 Movable Type のカテゴリ名の冒頭に通し番号を付け、実際の weblog 上で表示する部分についてはカテゴリ名をトリミングするという方法で、カテゴリの名前に関わらず任意の順番で並べるということが実現できると書きました。

このとき ( 2005 年 11 月 ) に紹介したプラグインは、 2005 年 7 月に一度試しに使っていただけで、紹介した時はプラグインの配布元へのリンクを書くだけで済ませていました。 今回、ちょっと新たなコンテンツを作ろうと思い立って、このプラグインを採用することにしたのですが、プラグインが正常に働きません。 2005 年 7 月に試した時と何が違うかって言ったら Movable Type のバージョンくらいしかありません。 当時は 3.171-ja で、現在は 3.2-ja-2 。

Cut First Char 0.02 ?

プラグインのソースを見比べてみると、実は The blog of H.Fujimoto:カテゴリを任意の順番に並べ替えるに現在置かれているソースと、ブログ自由自在 Movable Type 上級カスタマイズ術の 204 ページに書かれてあるソースは違うものになっています。

package MT::Plugin::CutFirstChar;
use strict;

use MT;
use MT::Template::Context;
use MT::Plugin;
use MT::I18N;

# show plugin information to main menu
my $plugin = MT::Plugin->new;
$plugin->name('Cut First Char 0.01');
$plugin->description('Cut first n char from string.');
$plugin->doc_link('http://www.my-mt.com/cutfirstchar.html');
MT->add_plugin($plugin);

# add global filter
MT::Template::Context->add_global_filter(cutfirstchar => \&cutfirstchar);

# main
sub cutfirstchar {
    my ($text, $arg, $ctx) = @_;

    $text = MT::I18N::substr_text($text, $arg, 0);
    $text;
}
 
1;

書籍の方ではこのようなソースになっているのに対し、 The blog of H.Fujimoto:カテゴリを任意の順番に並べ替えるのソースでは次のようになっています。

package MT::Plugin::CutFirstChar;
use strict;

use MT;
use MT::Template::Context;
use MT::Plugin;

my $plugin = MT::Plugin->new;
$plugin->name("Cut First Char 0.01");
$plugin->description('Cut first n char from MTtag.');
MT->add_plugin($plugin);

MT::Template::Context->add_global_filter(cutfirstchar => \&cutfirstchar);
 
sub cutfirstchar {
    my ($text, $arg, $ctx) = @_;

    $text = substr $text, $arg;
    $text;
}
 
1;

The blog of H.Fujimoto:「上級カスタマイズ術」掲載のcutfirstcharプラグインの不具合によると、 Movable Type 3.2 になって日本語処理のモジュール ( MT::I18N パッケージ ) が変わり、書籍掲載のものはそれに対応していないために、プラグインが正しく働かないようです。 よって、 The blog of H.Fujimoto:カテゴリを任意の順番に並べ替えるのソースでは日本語を考慮しないようにして対応しているとのこと。

最初はこれに気付かずに The blog of H.Fujimoto:カテゴリを任意の順番に並べ替えるのソースだけをずっと見ていたので、 1 時間くらいハマってしまいました。 バージョン 0.02 と書いてあったらそんなにハマらなかったのになあ ( 言い訳 ) 。

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など