2006年02月22日
default:空文字の場合の表示の指定
表示する内容が空文字の場合はよくあります。任意登録の項目は往々にして何も入力しない場合が多いです。
その場合、それをそのまま出すと、表示的によろしくない場合があります。
また、未登録の場合は「未登録」と明示的に表示したい場合もあります。
今までは、これらの処理はPHPでやってました。
if ($mail == "")
$dispmail = "<メールアドレスは登録されていません>";
else
$dispmail = $mail;
今までの話だと、Smartyで表示する場合も同じようなものです。
ここで使うのが default です。
空文字の場合どうするかは、テンプレート側でやっちゃいます。
なので、PHPのほうは、そんなことは何も意識せずに
$smarty = new Smarty;
$smarty->assign("mail",$mail);
$smarty->display('index.html')
と $mail をそのままテンプレートに渡します。PHPコードがまたすっきり!
テンプレートでは
<table>
<tr>
<td>メールアドレス</td>
<td>{$mail|default:"<メールアドレスは登録されていません>"}</td>
</tr>
</table>
と書きます。
表示する変数を修正子(default のこと)は、| (パイプ)でつなぎます。
defaultの後ろに、; (セミコロン)をつけ、{$mail}が空文字だった時の表示する文字を書きます。この中に、HTMLのタグを書くことも可能です。
PHPのほうは、値をテンプレートに渡すだけなので、表示のための編集作業も要らないし、編集した値を保持するための余計な変数も要りません。すっきりです(何度言ったことか…)
テンプレートのほうは、いちいちPHPを見なくても、空文字の場合はこう出るんだ!とすぐに確認できるし、変更も楽にできます。
2006年02月22日 11:10 | 4.変数の修正子
トラックバック
このエントリーのトラックバックURL:



