2007年05月11日

変数とリテラルの連結の件

Smartyで変数とリテラルで文字列を作成したかったのですが、ずっとやり方がわかりませんでした。

$var = 'abcdefg'

'hijklmn'

を連結して表示するだけなら
{$var|cat:'hijklmn'}

でできます。
=>
abcdefghijklmn


変数に入れるにはこうします。

{assign var='$newvar' value="`$var`hijklmn"}
{$newvar}

=>
abcdefghijklmn


変数をバッククォートでくくればよいようです。
posted by ほえ at 23:53| Comment(0) | TrackBack(0) | Smarty | このブログの読者になる | 更新情報をチェックする

2006年11月16日

SmartyでPHPの関数を使う件

Smartyのマニュアルの「変数の修正子」に、
「全てのphp関数は暗黙で修正子として 使用する事ができます」
ですと。

Smartyのマニュアルはどこに何が書いてあるのかよくわからないっす。

どこかに書いてあるのかもしれませんが、php関数はifでも使えたりします。
{if is_array($arr)}
配列!
{else}
配列じゃない!
{/if}
みたいに。
posted by ほえ at 17:33| Comment(0) | TrackBack(0) | Smarty | このブログの読者になる | 更新情報をチェックする

2006年11月15日

テーブルの行毎に色分けしたりする時に{cycle}を使う件

テーブルの列毎に色を変えたりする事は良くありますがそんな時にSmartyではcycleを使うとよいですね。
{cycle name="cycle_color" value="red, blue, yellow" assign="tr_color"}
とすると{$tr_color}にvalueの値が順番に入ります。同じnameの{cycle}を行わないと、次のvalueになりません。なので、

<table border="1">
<tr>
<td bgcolor="{$tr_color}">id</td>
<td bgcolor="{$tr_color}">name</td>
<td bgcolor="{$tr_color}">age</td>
</tr>
{cycle name="cycle_color" assign="tr_color"}
<tr>
<td bgcolor="{$tr_color}">id</td>
<td bgcolor="{$tr_color}">name</td>
<td bgcolor="{$tr_color}">age</td>
</tr>

とすれば<tr>ごとに色が変わります。
もっとも{foreach}と組み合わせて使うと、

<table border="1">
{foreach name="ll" from=$ar item="ill"}
{cycle name="cycle_color" value="red, blue, yellow" assign="tr_color"}
<tr>
<td bgcolor="{$tr_color}">id</td>
<td bgcolor="{$tr_color}">name</td>
<td bgcolor="{$tr_color}">age</td>
</tr>
{/foreach}

でしょうか

こんなのでも、
{cycle name="cycle_color" value="red, blue, yellow" advance=false print=false}
<table border="1">
{foreach name="ll" from=$ar item="ill"}
{cycle name="cycle_color" assign="tr_color"}
<tr>
<td bgcolor="{$tr_color}">id</td>
<td bgcolor="{$tr_color}">name</td>
<td bgcolor="{$tr_color}">age</td>
</tr>
{/foreach}

次のvaluesに進まないadvanceですが、advance="false"ではダメです。
printは値をその場で表示してしまうので、falseで表示しないように。

{cycle name="cycle_color" value="red, blue, yellow" advance=false print=false}
{cycle name="cycle_color" assign="tr_color"} <-- red
{cycle name="cycle_color" assign="tr_color2"} <--blue
とかしても、この後で割り当てた変数tr_colorの値は変わりません。

{$tr_color} -> red
{$tr_color2} -> blue
{cycle name="cycle_color" assign="tr_color2"}
{$tr_color2} -> yellow
{$tr_color} -> red


というわけです。
posted by ほえ at 15:51| Comment(0) | TrackBack(0) | Smarty | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。