Smartyで変数の最初から何文字を切り取る、というtruncateという修正子がありますが、マルチバイトに対応していないので、日本語だと文字化けする可能性があります。
検索すると、いくつかやり方があるみたいですが、下記のブログにあったものを紹介します。
Multibyte String Truncate Modifier for Smarty – mb_truncate
英語が苦手な方のために、解説です。
- PHPコードをコピーして、modifier.mb_truncate.php という名前で保存します。
- Smartyの/libs/plugins内にそのファイルを保存します。
- 使用するHTMLファイル内で、次のように使います。
//$test_stringは切り取りしたい変数です。13が文字数、...が続く文字列です。 {$test_string|mb_truncate:13:"..."}
下記の方法もあるようです。こちらは試してません。(^_^;
http://c-brains.jp/blog/wsg/07/06/14-160910.php