もう何年も前から同じ事で悩んでは 諦めてtemplate内でif文を書いてきたんですが
たとえば下記の感じで
php
1function smarty_function_tag($params, &$smarty){ 2 switch($params){ 3 case 1: $text='<span class="tag impt">重要</span>'; 4 break; 5 case 2: $text='<span class="tag info">お知らせ</span>'; 6 break; 7 case 3: $text='<span class="tag recruit">採用情報</span>'; 8 break; 9 default: $text='<span class="tag etc">その他</span>'; 10 break; 11 } 12 return $text; 13} 14 15 16$sql="SELECT * FROM `info`"; 17$stmt=$pdo->query($sql); 18$smarty->append('articles',$stmt->fetchAll(),true);
templateでforeachしながら関数にこんな感じで引数を渡すと...
template
1 2{foreach from=$articles item=foo} 3 {$foo.genre} 4{/foreach} 5//これで値が1~3で表示されるとしても..... 6 7//↓こうすると 8{foreach from=$articles item=foo} 9 {tag var=$foo.genre} 10{/foreach} 11//どこにも引っ掛からずにdefaultまで行ってしまいます。 12
そのまま引数をreturnしてみたら
php
1function smarty_function_tag($params, &$smarty){ 2 return $params; 3}
Notice: Array to string conversion in ~~~
...ってなってしまいます。
どうしたら解決できますか?
宜しくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/19 05:18