配列に対して修飾子を用いた場合は、その配列に格納された全ての値に影響を及ぼします。 配列全体を1つの値として作用させるには修飾子の先頭に @ 記号をつける必要があります。 例:{$articleTitle|@count} - これは、 配列 $articleTitle の要素数を、php の count() 関数を修飾子として用いて出力します。 http://www.smarty.net/manual/ja/language.modifiers.php
Smartyのtruncateマルチバイト文字列に対応していません。 カットされた位置によっては文字化けしてしまいます。 日本語もキレイに指定文字数でカットしたいなら マルチバイト対応のtruncateを作っちゃいましょう。 function smarty_modifier_mb_truncate($string, $length = 80, $etc = '...') { if ($length == 0) {return '';} if (mb_strlen($string) > $length) { return mb_substr($string, 0, $length).$etc; } else { return $string; } } このソースをmodifier.mb_truncate.phpというファイル名で Smartyのpluginディレクトリ”Smarty/libs
PHPでは、HTMLページ内に<?php ?>タグで括る事によって、 HTML(デザイン部分)とプログラム(ロジック部分)を同一ページに記述できます。しかし、同じファイル内にデザイン部分とロジック部分を記述するとメンテナンスが非常に困難となります。Java でも JSP で同じような問題が発生し、JSP 2.0 でカスタムタグの導入により ロジック部を分離することができ、Struts というフレームワークまで生まれました。 PHP では、Template Engine という技術によってデザイン部分とロジック部分を分離させメンテナンスを向上させることができるようになりました。このことで、デザイナーとプログラマーが同時に作業を行えるようにもなりました。この Template Engine は、それほど作るのに難しくはありません。しかし、自分で創って自分でメンテナンスしていくのは大変というので
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く