2006.08.06

MovableType

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。