MT3.3のtrim_toでtrimされた時に"..."を付ける

エントリー名を短くする時とかに使うtrim_toフィルタ。
MT3.3にアップグレードして久しぶりに使ってみたら、2バイト文字にも対応してくれてた♪
でも省略された場合だけ後ろに"..."とか付けたりしたかったので、少しだけソースをいじってみた。

lib/MT/Template/ContextHandlers.pm 

を書き換え。

sub _fltr_trim_to {
    my ($str, $val, $ctx) = @_;
    require MT::I18N;
    $str = MT::I18N::substr_text($str, 0, $val) if $val < MT::I18N::length_text($str);
    $str;
}

の部分を

sub _fltr_trim_to {
    my ($str, $val, $ctx) = @_;
    require MT::I18N;
    my $attachment = "";
    $attachment = "..." if $val < MT::I18N::length_text($str);
    $str = MT::I18N::substr_text($str, 0, $val) if $val < MT::I18N::length_text($str);
    $str .= $attachment;
    $str;
}

にすればOK。

3 trackbacks in legacy system
2006年08月08日 MT3.3‐前後のエントリへのリンクの文字数調整と+"..." - ももち ど ぶろぐ

MovableTypeの導入時に、参考書を頼りに、前後のエントリーへのリンクをつくってみたのはいいのだが、私は、どうしても長いタイトルをつける癖があって、...

2006年08月28日 タイトルの文字数を制限して省略&「...」をつける - CODE-0

このサイトはMovable Typeで構築されています。右側のモジュールのエリア...

2007年01月17日 タイトルの文字数を制限して省略 - ウェブネタログ

このサイトはMovable Typeで構築されています。右側のモジュールのエリア...