のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,643,369人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ【PHP】 Smarty 隔離スレ 【テンプレート】

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
601 : nobodyさん - 2009/08/10(月) 18:19:27 ID:??? (+24,+29,-89)
そのロジックはテンプレートじゃなくて、呼び出し元に書くべきでは・・・

やった事ないけど、Smartyインスタンスをなんらかの形で参照すれば出来るんじゃない?
グローバル変数にするとか、シングルトン使うとか、etc
604 : nobodyさん - 2009/08/10(月) 18:43:35 ID:euq/7Zv+ (-23,+29,-45)
>>603
ありがとうございます、そうですねー、確かにassign段階で書くとそんな感じですよね
決めました。そうします。
テンプレかアクションかどっちかが絶対ゴチャゴチャするなら一緒ですねもう。
いや、テンプレ変更する時のデメリットの方が大きそうだし。。
アドバイスありがとうございました!
606 : nobodyさん - 2009/08/10(月) 19:21:31 ID:??? (+31,+29,-107)
>テンプレかアクションかどっちかが絶対ゴチャゴチャするなら一緒ですねもう。
テンプレートとロジックの切り分けは、そのゴチャゴチャを纏める事にあるんだよw

アクションとテンプレ両方で値を編集しちゃうと、
どこでバグが発生したか突き止められなくなっちゃうでせう。
607 : nobodyさん - 2009/08/10(月) 19:38:15 ID:??? (-29,-30,-283)
>>605
例えば、入力任意のファックス番号とかあったとして、必須入力だったら確かにテンプレでは配列そのまま使って
FAX:{$ary.faxNum} で済むけど、必須じゃないんでその前段階のアクションで
if($ary['faxNum'];){$faxNum = $ary['faxNum'];}
else{$faxNum = "-";}
//assign処理
ってやる必要あるじゃないですか。それが嫌だったんですよ。
必須入力じゃない項目の数だけassignしまくらなきゃいけない。めんどくさいなぁと。
そこでphpかsmartyの構文で、テンプレの中で{if}とかしようと思ったんだけど…

でも、確かに>>606の言う通り、あっちこっちにまたがって値を編集しちゃダメですね。
smarty構文はデザインとか見た目(まさにテンプレート)を自動生成するためだけに使わなきゃなぁと
ようやく結論づきました。
608 : nobodyさん - 2009/08/10(月) 20:32:12 ID:??? (-25,-30,-131)
>>607
if(!isset($ary['faxNum'])) ($ary['faxNum'] = "-";

って書いて、$ary変数だけassignすればいいんじゃない?


その程度の表示分岐処理なら、テンプレート側でもOKかと思う。

{$ary.faxNum|default:"-"}

でいけない?
609 : nobodyさん - 2009/08/10(月) 20:50:18 ID:??? (+32,+29,-67)
値未入力であることを示すのに、何を表示するのかはview側の仕様だわな。

ひょっとしたら先々仕様変更で「入ってまへんで、へよへよ」と表示するようになるかもしれん。
そのとき内部データにそんな値(内容)入れたくないだろ?
608の後半みたいにテンプレ側でやった方がいいよ。
610 : nobodyさん - 2009/08/10(月) 22:51:30 ID:??? (+24,+29,-9)
>>608-609
うーん、そうか。
ケースバイケースでどうやるべきかじっくり考えてやってみるね
ありがとう
611 : nobodyさん - 2009/08/10(月) 23:13:31 ID:??? (-27,-30,-37)
度々申し訳ない
{if}--{/if}の中で、smarty変数を生成できないの? assignと同じことをしたいんだけど
{if $var eq "hoge"}
$newVar = "hogeでした";
{/if}
みたいな…
615 : nobodyさん - 2009/08/11(火) 03:32:24 ID:??? (+23,+29,-3)
>>614
ありがとう! こんなのがあったのか。助かりました!
617 : nobodyさん - 2009/08/11(火) 12:14:27 ID:??? (+26,+28,-6)
だからphpタグなんぞで処理したかったのか・・・。
618 : nobodyさん - 2009/08/12(水) 05:56:44 ID:??? (-27,-30,-227)
$hogeAry = Array (
[0] => Array ( [id] => 7 [uId] => 10237 [uType] => hoge [photo_text] => 写真の説明1 [photoName] => galleryPic7 [photo_on] => 1 )
[1] => Array ( [id] => 9 [uId] => 10237 [uType] => hoge [photo_text] => 写真の説明2 [photoName] => galleryPic9 [photo_on] => 1 )
[2] => Array ( [id] => 10 [uId] => 10237 [uType] => hoge [photo_text] => 写真の説明4 [photoName] => galleryPic10 [photo_on] => 1 )
)

という配列があります。
これのphotoNameを引き出したくて以下のものを実行してますがうまくいきません。何が原因でしょうか?
{foreach from=$hogeAry item=varAry}
名前は:{$varAry.photoName}<br />
{/foreach}

{$hogeAry.0.photoName} なら、ちゃんとgalleryPic7が出力されます
624 : nobodyさん - 2009/08/12(水) 11:41:14 ID:??? (-14,+0,+0)
619はシカトですかそうですか
626 : nobodyさん - 2009/08/12(水) 12:34:49 ID:??? (+19,+29,-39)
原因切り分けてみたら?
本当にDBから値は取れてるのか、違う関数コールしてないか、
ただの配列なら表示できるのか、などなど。
可能だったら再現するコードも貼って。
629 : nobodyさん - 2009/08/13(木) 16:40:28 ID:??? (+22,+29,-3)
結局原因は何なの?
631 : nobodyさん - 2009/08/21(金) 14:42:48 ID:??? (+33,+29,-46)
修飾子プラグインの中でメソッド呼べばよいのでは
632 : nobodyさん - 2009/08/21(金) 18:37:07 ID:??? (+32,+29,-32)
>>631
どうもありがとうございます
修飾子プラグイン、知りませんでした! 勉強になります、ありがとう
633 : nobodyさん - 2009/08/21(金) 22:16:33 ID:??? (+25,+27,-71)
プラグインの中で他のプラグインの機能を呼び出すことってできますか?
634 : nobodyさん - 2009/08/21(金) 22:16:56 ID:??? (+3,+13,+0)
できるよ
636 : nobodyさん - 2009/08/22(土) 00:59:28 ID:??? (+13,+30,+0)
637 : nobodyさん - 2009/08/22(土) 05:08:49 ID:??? (-1,+8,+1)
>>634
kwsk
639 : nobodyさん - 2009/08/22(土) 23:19:02 ID:??? (+29,+29,-2)
>>636
返事遅れました。うまくいきました、ありがとう
640 : nobodyさん - 2009/08/25(火) 00:15:56 ID:??? (+30,+29,-36)
foreach だの sectionだのって、なんで素直にfor文用意してくれないんだろね
php用テンプレートなのにわざわざ特殊な書式だし、頭に入らなくてしょっちゅうマニュアル見てる
頭悪くて悲しいな
641 : nobodyさん - 2009/08/25(火) 06:09:04 ID:??? (-20,-27,-13)
>>640
Smarty3で追加される
642 : nobodyさん - 2009/08/25(火) 13:55:26 ID:??? (+25,+29,-13)
>>641
ほんとに? 情報ありがとう、気分が楽になったよw
そういう情報を仕入れる前向きさがないとイカンなぁ
644 : nobodyさん - 2009/08/26(水) 13:37:23 ID:??? (-23,-22,-69)
>>643
insertタグで出来るんじゃね?

あと検索結果画面だと思うけど、それってキャッシュするべきじゃなくね?w
するにしてもSmarty側でするもんじゃないと思う。
646 : nobodyさん - 2009/08/26(水) 23:01:41 ID:??? (+29,+29,-65)
>>644-645
ページのサイドバーをキャッシュしているんだが、
その箇所に検索フォームやログインフォームが入っているんだよ。
確かにキャッシュするべきじゃないが、
部分毎にわかるとキャッシュする意味がないかな?とも思ったり。

やっぱり、設計に問題あるかも・・。
648 : nobodyさん - 2009/08/28(金) 15:03:05 ID:??? (-28,-10,-17)
コントローラ側で制御すれば?
649 : nobodyさん - 2009/08/28(金) 15:25:18 ID:??? (+0,+1,-18)
テンプレートを数パターン用意すれば?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について