2003年10月27日

カテゴリのパンク

さて、総エントリも100を超えてくるとカテゴリの一覧がすごいことになってきます。
このまんまだとブラクラになりかねなかったので、なんとか圧縮する方法を探すと なるページを発見。

プラグインで分割できるとのことですが実装方法がPHPだったのが気に入らずに断念(爆)

で、他に良い方法がないかと探していたら

なるページを発見。

こちらは最近の10件以外はリンクのみという方法ですが、テンプレート操作のみで気楽に実装できるので採用となりました。

でも、タイトルだけならメニューにもあるので、多少本文を表示する方法は無いかなぁと思って

を見ていたところ、
Tag 全体を通しての属性

trim_to
Tag の値から,最初の N 文字だけ取り出します. ここで,N というのは 属性値として指定します.

良い物発見( ̄▽ ̄)ノ

早速、それを使ってタイトル一覧表示部分を次のように変更してみました。

 </MTEntries>
 <hr />
 <div><b><font size=4>その他のエントリ</font></b></div>
 <MTEntries lastn="3000" offset="10">
 <div class="blogbody">
 <a name="<$MTEntryID pad="1"$>"></a>
 <div><span class="title"><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></span> <$MTEntryDate$></div><br />
 <$MTEntryBody sanitize="br p" trim_to="300"$>
 </div>
 <hr width=80% />
 </MTEntries>
 </div>
結果は各カテゴリリストからご覧ください

ちなみに、このままだと時々文末が文字化けするので、もしMovableTypeをEUCで動かしているなら次の修正で文字化けしないようにできます。

MovableType Version 2.64 日本語化済 lib/MT/Template/Context.pm の290行目($str = substr $str, 0, $len if $len < length($str);の次の行)に次の3行を追加
                 if ($str =~ /\x8F$/ or $str =~ tr/\x8E\xA1-\xFE// % 2) {
                     chop $str;
                 }
これで文字化けは無くなります。

ちなみに上記のPerlでのEUC2バイト文字切れ判定分は下記のサイトを参照させて頂きました。

  • 文字が途切れているか判定する
あと、ついでなんで、カテゴリを増やして記事を分散させてみました。
これで当分は持つかなぁと淡い期待

Posted by Takuchan at 2003年10月27日 00:25 | トラックバック(1)