MT4で、trim_toの制限文字数超えたときだけ"..."を付ける方法。
categories: MovableType tags: HowTo MovableType Perl Programming
昔書いた「MT3.3のtrim_toでtrimされた時に"..."を付ける」ですが、MT4になって若干trim_toの実装が変わっていたので、MT4でtrim_toに"..."をつける方法をまとめておきます。
書き換えるファイルはMT3.3と同じく
lib/MT/Template/ContextHandlers.pm
MT3.3では
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;
}
となっていましたが、MT4では
sub _fltr_trim_to {
my ($str, $val, $ctx) = @_;
$str = substr_text($str, 0, $val) if $val < length_text($str);
$str;
}
と、若干簡素化されています。
ここを
sub _fltr_trim_to {
my ($str, $val, $ctx) = @_;
$str = substr_text($str, 0, $val)."..." if $val < length_text($str);
$str;
}
と書き換えてやると、trim_toで制限文字数を超えたときだけ「...」が後ろに付くようになります。
なお、これをサイト全体に反映するには、一度再構築が必要です。
お試しあれ。