smartyでエンコードは
{$hoge|escape:”url”}
php、MySQLそれにかかわるweb全般自分用メモ
テンプレートエンジンsmartyメモ
smartyでエンコードは
{$hoge|escape:”url”}
smarty3デフォルトでは{php}{/php}が使えない
$smarty->allow_php_tag = true;
を記述。
Smarty 3での{php}タグ使用時に発生するエラーの対
処法
<?php
$smarty->assign(‘year1’, strtotime(‘+1 year’));
テンプレート
{$year1|date_format:’%Y’}
smarty 日付け比較
$data に登録された日付けが入っているとして
(2010-12-07 09:01:03 とか)
$smarty.nowで今日の日付け
-24*60*60*7 で一週間まえの日付けを計算して
{$smarty.now-24*60*60*7}
比較する。
{if $data > $smarty.now-24*60*60*7|date_format:”%Y-%m-%d”}
{else}
{/if}
今日から 1週間前の日付けよりあとであればNEWで
一週間前より前の日付けなら表示しない。
か
$todays = date(“Y-m-d”);
$daysago = date(“Y-m-d”, strtotime(“$todays -7 day”));
$smarty->assign(“daysago”, $daysago);
テンプレート
$updatedaysに日付データが入ってるとして(2012-09-09とか)
{if $updatedays|date_format:”%Y-%m-%d” > $daysago|date_format:”%Y-%m-%d”}
new!{/if}
phpと同じように replace を使う。
smarty 文字列置き換え
{$hage|replace:”置き換え文字列”:”置換する文字列”}
文字列制限もよく忘れるので
smarty マルチバイト文字制限
{$data|default:””|mb_strimwidth:0:10:”…”:’EUC-JP’|escape:”html”|default:””}
一文字2バイトで(文字コードで異なる場合有り)5文字以上は…になる
小数点以下の数値を表示
{$data|number_format:ここに何桁までかいれる}
小数点以下2桁の場合
$data = 123.4567; として
{$data|number_format:2} は
123.45
小数点以下3桁の場合 は
{$data|number_format:3}
123.456 と表示される
$dataが10の場合
{$data|number_format:2} は
10.00 と表示される。
smartyデバック方法。何故かよく忘れる。
smarty マニュアル{debug}
デフォルトはjavascript
{debug}
で
html
{debug output=”html”}
だ。
Smarty を使った開発でデバッグを行う 4 つの方法
変数を連結したい場合
{assign var=abc value=”`$abc1 ` ` $abc2`”}
変数をバッククォーテーション ` で囲む
(キーボードは shift + @)で連結できる。