Movable Type 備忘録

 長くなった文字列をトリミングで見栄えよくする

ブログのサイドバーには、"最近のエントリ一覧"や"最近のコメント一覧"、"最近のトラックバック一覧"などを表示するのが一般的に多いと思いますが、たとえば、トラックバック一覧でトラックバック先のタイトル名が長かったりすると2行、3行になってしまいますね。 それとか、エントリのタイトルなんかも長くなりがちなのはわたしだけでしょうか

このように長い文字列をトリミングして表示できたらいいと思ったことありませんか 任意の文字数を切り出して、その後に「…」を付加してくれたらいいと思ったことありませんか

今回は、わたしが以前使っていた長くなったタイトルなどの文字列をトリミングするカスタマイズをご紹介します。

たとえば、わたしのブログ説明( <$MTBlogDescription$>タグで表示 )を、8文字でトリミングしてみます。

  1. トリミング前
  2. 忘れっぽい管理人のMovableTypeカスタマイズ備忘録。MovableTypeのインストール、カスタマイズ、トラブルシューティングなどシェア。テンプレート配布中。
  3.  
  4. トリミング後
  5. 忘れっぽい管理人...

ちょっと8文字でトリミングしてしまうと、間抜けな管理人のようにとらわれがちですが、やりたいことは分かっていただけるかと思います

文字列をトリミングするには、Trimjプラグインを使うことで上記のようなことができます。 各文字コードにも対応しているようです。
UTF-8以外の文字コードは確認していません。

Trimjプラグインの入手はこちらから
http://mayoi.net/archives/2005/09/30-2305.php

カスタマイズ

まず、Trimjプラグインをインストールします。 上記URLでTrimjプラグインのコードが紹介されていますので、テキストファイルにコピペしてください。 その際、各自の環境に合った文字コードで保存します。 わたしの場合は、MovableType(ムーバブルタイプ)標準の UTF-8 で保存しました。 そして、サーバにアップロードします。 アップロード先は、いつものように mt/plugins/ディレクトリの中です。

次にトリミングしたい箇所のテンプレートを編集します。 たとえば、エントリ名を24文字(全角)でトリミングする例を記します。

  1. トリミングしない
  2. <$MTEntryTitle$>
  3.  
  4. トリミングする
  5. <$MTEntryTitle trimj_to="48"$>

基本的にはトリミングしたいタグの属性として"trimj_to"を追加して、表示する文字数(半角)を指定するだけです。 英数字(半角)は1文字です。 日本語(全角)は2文字分として扱われます。 上記例だと半角48文字分なので、日本語(全角)だと24文字分に相当します。

修正したら、保存して再構築すれば完了です。

他にも便利なプラグインがあるのでご紹介します。

こちらのお気楽極楽ブログさんでは、文字列中の任意の場所から、指定文字数分トリミングさせることができるプラグインが紹介されています。

たとえば、"あいうえお" を、"い" から3文字分切り出すなどができます。 このプラグインでは、切り出した文字列の後ろには「…」は付かないようです。

では、SEE YOU

 Trackback Pings(0)

No trackbacks found.

 Comments(3)

#1: Posted by oscar @ August 30, 2006 [REPLY]
user-pic

おはようございます。bzbellさん。
>UTF-8以外の文字コードは確認していません。
私のところ(EUC)でも使っております。他にも同様の機能を持ったプラグインがあるのですが、2バイト文字をやりたい通りに切ってくれたのは、このプラグインのみでした。

#2: Posted by Author Profile Page ゴリ丸 @ March 14, 2008 [REPLY]
user-pic

MTOS4.1にて使用しようとしたのですが、
プラグイン一覧の画面で「読み込みに失敗しました」というエラーが表示されました。

ログを確認したところ、以下のメッセージが出力されていたのですが、
原因は分かりませんでしょうか?

—————————————–
プラグインでエラーが発生しました: /var/www/mt/plugins/mt-trimj.pl Undefined subroutine &MT::add_global_filter called at /var/www/mt/plugins/mt-trimj.pl line 44. Compilation failed in require at lib/MT.pm line 1110. (IP: 192.168.1.10)
—————————————–

#3: Posted by Author Profile Page bzbell @ March 14, 2008 [REPLY]
user-pic

>>2 ゴリ丸 さん

こんにちわ^^

エラー内容を見る限り、mt-trimj プラグインの記述の仕方に問題がありそうですね。
元々 MTOS 以前のバージョンのプラグインなのでしょうがないですよね。
でも MT4 では使用できてるので、そこら辺に MT4 と MTOS の差異があるみたいですね。

どうしても必要ということでしたら、MT4 向けに作り直してみましょうか。
もっとも、わたしは MTOS は使用してないので動作確認はできませんけどあせあせ

 Post a Comment

 

コメント用フィード