>



2009年7月

タイトル文字数制限

サイドバーなどにナビゲーションとして「最近のブログ記事」タイトルを
掲載することが多いと思いますが、「ブログ記事」のタイトルが長いと改行され
レイアウトが崩れるてしまうことがあります。

ある文字数以上をトリミングし表示する「日本語トリミングフィルタ」を利用し
表示文字数制限の方法をご案内します。「人生迷い箸」提供の
「torimj.pl」を以下の手順でインストールします。


1.torimj.pl 作成

以下のテーブル内のタグをコピーしメモ帳などに貼り付け、
「torimj.pl」の名前で保存します。

package MT::Plugin::Trimj;

use MT::Template::Context;
use MT::ConfigMgr;
use Encode qw/ from_to /;

MT::Template::Context->add_global_filter(trimj_to => sub {

my($str, $nstr, $ctx) = @_;
my $sippo = '...';

my $tmpstr = $str;

my $c = MT::ConfigMgr->instance->PublishCharset;
my $conv_in;
if (lc $c eq lc 'Shift_JIS') {
$conv_in = 'shiftjis';
} elsif (lc $c eq lc 'ISO-2022-JP') {
$conv_in = 'iso-2022-jp';
} elsif (lc $c eq lc 'UTF-8') {
$conv_in = 'utf8';
} elsif (lc $c eq lc 'EUC-JP') {
$conv_in = 'euc-jp';
}
if ($conv_in ne 'euc-jp') {
from_to($str, $conv_in, 'euc-jp');
}

# 比較
my $lenstr = length($str);
if($lenstr <= $nstr) {
return $tmpstr;
}

my $out = substr($str,0,$nstr);

if ($out =~ /x8F$/ or $out =~ tr/x8ExA1-xFE// % 2) {
chop $out;
if($out =~ /x8F$/){
chop $out;
}
}
$out .= $sippo; # 尻尾を付けたくない場合は、コメントアウトのこと。

if ($conv_in ne 'euc-jp') {
from_to($out, 'euc-jp', $conv_in);
}

return $out;
});


2.torimj.pl をインストール

Movable Type をインストールしている「plugins」フォルダ内に、
「torimj.pl」をFTP転送します。


3.MTタグに trimj_to 属性を記載

ブログ記事タイトルを半角20文字に制限する場合、

<$MTEntryTitle$ trimj_to="20"$>

のように記載する。



このエントリーをはてなブックマークに追加



Check