Smartyのmodifier(mb_strimwidth)がないので作る。
SmartyでオリジナルのテンプレートModifierを作る方法のメモ
参考にstrip_tagsを見るとこんな。
function smarty_modifier_strip_tags($string, $replace_with_space = true) { if ($replace_with_space) return preg_replace('!<[^>]*?>!', ' ', $string); else return strip_tags($string); }
ってことは普通に
function smarty_modifier_mb_strimwidth($string, $start = 0, $width, $trimmarker) { return mb_strimwidth($string, $start,$width, $trimmarker); }
ってな感じにすればいいのか。ふむふむ。
使い方は
{ $somestring|mb_strimwidth:30:"..."}
みたいに書けばいいみたいよ。
っていうか普通に関数でreturnするだけなら"register_modifier"使えばいいっぽい。
新規で作るよりもマルチバイトを意識しないのであれば"truncate"を使ったほうがよいのでしょうね。