[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/08 11:25 / Filesize : 245 KB / Number-of Response : 924
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:nobodyさん [2008/02/02(土) 00:21:09 ID:6cKcKeTp]
まぬあるwww.smarty.net/manual/ja/

536 名前:nobodyさん mailto:sage [2009/07/28(火) 17:56:09 ID:???]
>>535
updateコマンドで一括変更したり、日にちでサイトをガラッと変えたりするんじゃね

537 名前:nobodyさん mailto:sage [2009/07/28(火) 20:41:09 ID:???]
>>535
CMSとか作る場合には良いんじゃないかね。
管理画面からの検索や更新、バックアップが取りやすい。
あとはWEBサーバが冗長化されていて、リソースを一箇所に纏めたい場合とかかね。


制作の手間暇考えたら、メリットは薄いと思うけど。

538 名前:nobodyさん mailto:sage [2009/07/29(水) 22:00:38 ID:???]
>>535
ファイルをDBで管理すると、WEB上から更新できるならな。
しかし、複数アカウントを発行して利用するシステム(MTなど
の場合は、システム毎にテンプレートを編集できるので
ファイルで管理するより便利。メリットは絶大だと思う。

539 名前:nobodyさん mailto:sage [2009/07/30(木) 00:20:18 ID:???]
いや、その用途なら普通にファイル編集orアップローダのが楽だろ…

540 名前:nobodyさん mailto:sage [2009/07/30(木) 12:07:42 ID:???]
>>539
DB分かってる人ならDB使うのがラクだと思えるよ。
ファイルはすぐ腐る。

541 名前:nobodyさん mailto:sage [2009/07/30(木) 12:13:33 ID:???]
少し腐ったぐらいが美味しい...

542 名前:nobodyさん mailto:sage [2009/07/30(木) 12:16:56 ID:???]
ファイルは数が増えるとどんどん大変になるんだよな

543 名前:nobodyさん mailto:sage [2009/07/30(木) 16:35:27 ID:???]
システム作る側は楽かもね。

デザイナの大半はローカル環境でコーディング、一括でアップロードを望んでいる。
またテンプレート自体がバージョン管理下に置かれている事も多々ある。
運営する上でDBに流し込み作業が発生するのは楽ではない。

544 名前:nobodyさん mailto:sage [2009/07/30(木) 16:40:57 ID:???]
ディレクトリ分けもせずに700個のHTMLと格闘してる奴を見てるとホント馬鹿だと思えてくる



545 名前:nobodyさん mailto:sage [2009/07/30(木) 17:12:18 ID:???]
そんな奴いねーよw

546 名前:nobodyさん mailto:sage [2009/07/30(木) 18:40:48 ID:???]
700個のHTMLって時点でテンプレートを活かしてない感じが…

547 名前:nobodyさん mailto:sage [2009/07/30(木) 18:50:56 ID:???]
テンプレどころかCSSすら使ってないんですわ、マジで。

548 名前:nobodyさん mailto:sage [2009/07/30(木) 18:58:17 ID:???]
でも場末のウェブ制作屋ってほんとひどいからね。
ちょっとかじった中学生か、ってレベルのおっさんが
見てて頭痛くなってくるような非効率的な作業環境で、
素人騙して金貰ってるようなとこいっぱいあるぞ。

549 名前:nobodyさん mailto:sage [2009/07/30(木) 21:03:15 ID:???]
>>543
流し込み作業をプログラムですれば良いだけだろ
一括アップロードと変わらん

550 名前:nobodyさん mailto:sage [2009/07/30(木) 22:46:24 ID:???]
>>549
それやってしまうとファイル管理のメリットも、DB使うメリットも薄れてしまう気がするんだが。

551 名前:nobodyさん mailto:sage [2009/07/30(木) 23:54:04 ID:???]
というかDBなんてある意味ファイル管理をラップしたようなもんだから
DBでできてファイル直弄りでできんことはないだろ。
せっかくキャッシュとか使ってるのに
変なとこでDB使うとパフォーマンスのボトルネックにもなりかねんし
DBじゃなきゃ開発コストパフォーマンスの点でよっぽど差がでる
って場合じゃなきゃ下手にDB化なんかせんよ。

そういう奴は画像ファイルとかもカラムに突っこんでるタイプだろ。

552 名前:nobodyさん mailto:sage [2009/07/31(金) 00:03:20 ID:???]
どちらにしろデータとして記録するんだからファイルで置こうがDBに突っ込もうが大して変わらんだろ

553 名前:nobodyさん mailto:sage [2009/07/31(金) 01:55:56 ID:???]
Smarty使って、DBではなくファイルで管理しているWEBアプリってあるか?


って思ったけど、OpenPNEがそうだな。追加で編集する場合はDB使うけど

554 名前:nobodyさん mailto:sage [2009/07/31(金) 02:04:43 ID:???]
>>552
制作、運用、実行コスト、全てが大きく変わるわw

検索するとか、システム一括で何かしたいとか、特別な理由が無い限りDBにテンプレートつっこむのはナンセンス。



555 名前:nobodyさん mailto:sage [2009/07/31(金) 02:43:31 ID:???]
ナンセンスってほどでも無いっしょ
ファイルシステムだって名称を唯一のキーとしたDBみたいな物だし

556 名前:nobodyさん mailto:sage [2009/07/31(金) 03:11:10 ID:???]
PCのスペックが上がりまくったせいで、恐ろしいほどのヘマをしない限りは
DBで記録しようがファイルで置こうがボトルネックと呼べるレベルのものは出ない

むしろ、恐ろしいほどに数が増えて人的に整理が大変になったほうがボトルネック

557 名前:nobodyさん mailto:sage [2009/07/31(金) 03:49:06 ID:???]
>>555
だからこそナンセンスなんだよw
ファイルシステムの実装はDBそのものなんだから、DBにつっこむ必要が無いものをつっこむ必要は無い。

>>556
にわかSEにありがちな発想ですね(^^
人的整理はDBやSmarty以前のバージョン管理、運用の問題。

558 名前:nobodyさん mailto:sage [2009/07/31(金) 04:25:59 ID:???]
>>557
ほう、ではDBとFSで実装した場合の違いを定量的に示してくれ

559 名前:nobodyさん mailto:sage [2009/07/31(金) 04:42:31 ID:???]
>>558
FSじゃなきゃ出来ない事、FSなら標準で出来る事は多々あるだろう。

 ・DBコネクション等の負荷が無い
 ・当然PHP側のコードもシンプル
 ・SVN等のバージョン管理システムが使える
 ・使い慣れたエディタで直接編集が可能
 ・使い慣れたソフトでアップロード/ダウンロード/バックアックも自由自在
 ・当然複雑な管理画面も不要になる為実装コストは激減

これらはFSなら特別な実装は不要。
君はDBで実装出来るか?

検索したいとか、DBサーバで集中管理したいとか、特別な要件が無い限りテンプレートのDB化はしない。

逆にDBを疑似ファイルシステムとして使うメリットとその実装コストを教えて欲しい。
オープン系CMSを引き合いに出すのであれば、同等の管理画面等を作るコストも入れてくれよな。

560 名前:nobodyさん mailto:sage [2009/07/31(金) 05:22:21 ID:???]
定量的の意味知ってるか?

561 名前:nobodyさん mailto:sage [2009/07/31(金) 05:56:21 ID:???]
定量的って言葉使いたいだけですか?w
>>559 に答えられたら答えてやんよ。

562 名前:nobodyさん mailto:sage [2009/07/31(金) 10:54:30 ID:???]
まぁ、喧嘩するなや。
第三者からみたら、有益な討論してるように感じるんだから。

563 名前:nobodyさん mailto:sage [2009/07/31(金) 11:13:51 ID:???]
>>561
低学歴乙

564 名前:nobodyさん mailto:sage [2009/07/31(金) 11:35:24 ID:???]
>>562
有益かはともかくSmartyの議論ではなさそうだな。



565 名前:nobodyさん mailto:sage [2009/07/31(金) 12:20:19 ID:???]
>>564
Smartyの使い方に関する議論だろ

566 名前:nobodyさん mailto:sage [2009/07/31(金) 15:05:22 ID:???]
smartyってHTMLだけしか知らないデザイナーに読みやすくするためだけの技術だろ

567 名前:nobodyさん mailto:sage [2009/07/31(金) 16:10:10 ID:???]
逆だと思うが。PHPを使えるプログラマー用の技術だろ。

568 名前:nobodyさん mailto:sage [2009/07/31(金) 18:56:10 ID:???]
>>563
答えられない質問には煽る…典型的な厨ですね。

定量的も何も、FSの場合は >>559の 実装コストはほぼゼロ。
DBで作った場合のコストは?低学歴な僕には検討もつきません><おしえてください。

569 名前:nobodyさん mailto:sage [2009/07/31(金) 19:46:53 ID:???]
>>568
俺も低学歴だけど頑張ってみる
XOOPSみたく、ベースはファイルで、そっからDB突っ込む奴で考えてみた


> ・DBコネクション等の負荷が無い
キャッシュファイル使えばテンプレ本体がDBにあっても関係ない

> ・当然PHP側のコードもシンプル
プラグインで済むから同じ

> ・SVN等のバージョン管理システムが使える
ベースのテンプレートをファイルにすれば同じ

> ・使い慣れたエディタで直接編集が可能
コピペすれば一緒かと

> ・使い慣れたソフトでアップロード/ダウンロード/バックアックも自由自在
phpMyAdminは使い慣れたソフトってことで

> ・当然複雑な管理画面も不要になる為実装コストは激減
テキストボックスで十分じゃん

> 同等の管理画面等を作るコストも入れてくれよな。
phpMyAdminで十分


テンプレートがDBに入ってて便利なのは、
出先とかでftp,シェルが使えない環境でもブラウザで更新出来るに尽きるんじゃないかと
頑張れば携帯でも更新出来るし。。。

570 名前:nobodyさん mailto:sage [2009/07/31(金) 19:49:07 ID:???]
ファイル操作用のPHPコードと
DB操作用のSQLでは、後者の方が自由度高いと思うけどな

571 名前:nobodyさん mailto:sage [2009/07/31(金) 20:49:32 ID:???]
>>568
煽ったのはお前だろカスが
最初に質問したのは俺だが何故答えないの?

572 名前:nobodyさん mailto:sage [2009/07/31(金) 20:58:48 ID:???]
また「全部自分でやるから実行速度は早い」とかえらそうにしてる馬鹿が騒いでるのか

573 名前:nobodyさん mailto:sage [2009/07/31(金) 21:21:59 ID:???]
>>571
「俺だが」ってIDも出していない奴をどうやって判断する?
俺たちはエスパーじゃないぞ?

574 名前:nobodyさん mailto:sage [2009/07/31(金) 23:21:12 ID:???]
>>569
> キャッシュファイル使えばテンプレ本体がDBにあっても関係ない
テンプレート更新確認の為に、DB接続されるよ。

> プラグインで済むから同じ
プラグイン作成、テストの工数がかかるよ。

> ベースのテンプレートをファイルにすれば同じ
一括でコミットしたり、指定リビジョンにロールバックしたい場合とか困るよね。

> コピペすれば一緒かと
エディタで編集→管理画面を開く→コピペ→DBにコミット→確認が、直接編集と同じ手間と?

> phpMyAdminは使い慣れたソフトってことで
ファイルやディレクトリ単位での権限管理はどうするの?
例えば一時的にディレクトリ名を変えてバックアップ取りたい場合とか、運営者にSQLを書かせるの?

> テキストボックスで十分じゃん
見た目上はそうかもしれないが、内部実装は相応のコストがかかると思うよ。
複数ファイル同時に更新しなきゃいけない場合とかもあるしさ。

> phpMyAdminで十分
上に同じ。

> テンプレートがDBに入ってて便利なのは、
> 出先とかでftp,シェルが使えない環境でもブラウザで更新出来るに尽きるんじゃないかと
> 頑張れば携帯でも更新出来るし。。。
これはDBかFSかは関係無くね?制作者的にはSQL回す方が楽ではあるだろうけど。

>>571
>>568 で答えてるよ。FSならコストゼロ、DB実装なら相応。要件次第。
高学歴の君に、DBで同等の実装をした場合のコストを教えて欲しいな。



575 名前:nobodyさん mailto:sage [2009/08/01(土) 01:20:41 ID:???]
だから、いちいち煽り入れるなって
お前がせっかく書いたレスも陳腐な物になるぞ

576 名前:nobodyさん mailto:sage [2009/08/01(土) 23:36:43 ID:???]
>>571はどこいっちゃったの?

577 名前:nobodyさん mailto:sage [2009/08/02(日) 01:41:46 ID:???]
お前がいい加減にしろ

578 名前:nobodyさん mailto:sage [2009/08/02(日) 01:48:38 ID:???]
>>571はどこいっちゃったの?

579 名前:nobodyさん mailto:sage [2009/08/02(日) 03:05:41 ID:???]
まぁ普通はDBを使うメリットなんて無いって事さ
DB憶えたての頃は俺も無闇にDB化したがったものだ

580 名前:nobodyさん mailto:sage [2009/08/03(月) 01:13:56 ID:???]
じゃ、大手ポータルサイト(ブログとか)って
テンプレートをDBに入れずにファイルで読み書きしてるのかな?

581 名前:nobodyさん mailto:sage [2009/08/03(月) 03:29:39 ID:???]
そんな極少数の大規模案件を例えに出されてもなぁ・・・
使ってるところは使ってるだろう(ハテナとか、スケーラビリティか何かを考慮してDBをファイル置き場に使ってるとか)

要件次第なんじゃない?
それなりの資金と開発期間があり、WEBベースで不特定多数が編集するシステム開発
とかだったらDB化した方が遙かに楽だろう。

582 名前:nobodyさん mailto:sage [2009/08/03(月) 09:46:29 ID:???]
>>581
DB使うメリットないとか言っといて
結局要件しだいかよw


583 名前:nobodyさん mailto:sage [2009/08/03(月) 10:57:19 ID:???]
>>581
つまり、結局は「DB化した方が遥かに楽」なケースが”ある”ということですね

584 名前:nobodyさん mailto:sage [2009/08/03(月) 17:52:34 ID:???]
>>582-583
最初から『意味も無く』FSをDBに置き換えるのがナンセンスと書いてるじゃないかw

揚げ足取りはいいから、具体的なメリットデメリットを提示してくれよ、
大手が使ってるとか、Open系CMSが使ってるからでは話にならん。



585 名前:nobodyさん mailto:sage [2009/08/03(月) 18:04:36 ID:???]
っていうか大手CMSサイトってPHP+Smartyなの?その時点でその話は破綻している。

586 名前:nobodyさん mailto:sage [2009/08/03(月) 18:24:53 ID:???]


どちらも都合のいいように解釈しすぎで、この話はいつまで経っても平行線。

587 名前:nobodyさん mailto:sage [2009/08/03(月) 18:59:14 ID:???]
平行線にすらなっていない。
DB厨がファビョっているだけだ。

588 名前:nobodyさん mailto:sage [2009/08/03(月) 20:12:30 ID:???]
ファビョってるのはむしろお前だろ?1人で戦っているつもりだろうがw

589 名前:nobodyさん mailto:sage [2009/08/03(月) 21:44:15 ID:???]
いちいち煽りに反応しなくていいからw 

とりあえず君のすばらしい経験談と、DB捌きっぷりをこのスレに轟かせれば、
もう少しましな流れになるんじゃないかな?

(^o^)でーたべーす は すごく すごい!・・・なぜなら、すごいから!
(^o^)でーたべーす の すごさがわからないやつは すごくない!

590 名前:nobodyさん mailto:sage [2009/08/03(月) 22:23:10 ID:???]
「要件次第でDB使う」でみんな納得。
丸く納まってよかった。


591 名前:nobodyさん mailto:sage [2009/08/03(月) 22:34:30 ID:???]
以下Smarty3を語るスレになりました。
開発ペース遅すぎるよね。

592 名前:nobodyさん mailto:sage [2009/08/04(火) 00:10:08 ID:???]
htmltemplate.php で十分だしー

593 名前:nobodyさん mailto:sage [2009/08/04(火) 00:13:10 ID:???]
>>590
すまんけどどういう要件ならDB、FSを使うべきかまとめてくれないか?

594 名前:nobodyさん mailto:sage [2009/08/04(火) 01:04:56 ID:???]
>>593
大規模案件ならDB でいいんじゃないか。



595 名前:nobodyさん mailto:sage [2009/08/04(火) 01:51:48 ID:???]
>>593
基本的にはFSじゃないかね。
DBは使う必要があれば使えばいい。
あまり思い浮かばないし、実例も聞かないけどね。

596 名前:nobodyさん mailto:sage [2009/08/04(火) 02:01:18 ID:???]
すまん
結局>>581が結論でいいんじゃないかと言いたかった。

597 名前:nobodyさん mailto:sage [2009/08/04(火) 09:05:44 ID:???]
OK


598 名前:nobodyさん mailto:sage [2009/08/04(火) 11:09:38 ID:???]
>>591
ぜひ参画してくださいよ

599 名前:nobodyさん mailto:sage [2009/08/04(火) 11:24:56 ID:???]
大規模案件にはJAVAという逆説。

600 名前:nobodyさん [2009/08/10(月) 18:05:18 ID:euq/7Zv+]
すみません、質問です
テンプレートファイル内で、{php}〜{/php}って形で、phpのプログラムを実行出来ますが、
この「〜」の部分で、assignされた変数を操作することは出来ないでしょうか

{php}
//ここで{$name}の中身を変更したり、{$name}をキーにして画像を出力する関数を実行したい
{/php}

私の名前は{$name}です

こんな感じで…
よろしくお願いします。

601 名前:nobodyさん mailto:sage [2009/08/10(月) 18:19:27 ID:???]
そのロジックはテンプレートじゃなくて、呼び出し元に書くべきでは・・・

やった事ないけど、Smartyインスタンスをなんらかの形で参照すれば出来るんじゃない?
グローバル変数にするとか、シングルトン使うとか、etc

602 名前:nobodyさん [2009/08/10(月) 18:26:43 ID:euq/7Zv+]
>>601
ありがとうございます、やっぱり呼び出し元でやるべきなんでしょうか?
いまassignされて引き渡されるデータが配列一つなので、それを元にテンプレートでやった方がスマートなんですよね
呼び出し元で各値の条件分岐分やるとassign assign assign…とassignだらけになってしまうので
テンプレ長くする方が問題かなぁ

603 名前:nobodyさん mailto:sage [2009/08/10(月) 18:35:23 ID:???]
>>602
もしかしてこんな感じで解決しない?

if(...) {
$a=1;
} else {
$a=2;
}
$smarty->assign('a',$a);


604 名前:nobodyさん [2009/08/10(月) 18:43:35 ID:euq/7Zv+]
>>603
ありがとうございます、そうですねー、確かにassign段階で書くとそんな感じですよね
決めました。そうします。
テンプレかアクションかどっちかが絶対ゴチャゴチャするなら一緒ですねもう。
いや、テンプレ変更する時のデメリットの方が大きそうだし。。
アドバイスありがとうございました!



605 名前:nobodyさん mailto:sage [2009/08/10(月) 19:16:08 ID:???]
>>604
条件分岐やるとassignが増えるってどういうこと?
配列をそのまま使えば?

606 名前:nobodyさん mailto:sage [2009/08/10(月) 19:21:31 ID:???]
>テンプレかアクションかどっちかが絶対ゴチャゴチャするなら一緒ですねもう。
テンプレートとロジックの切り分けは、そのゴチャゴチャを纏める事にあるんだよw

アクションとテンプレ両方で値を編集しちゃうと、
どこでバグが発生したか突き止められなくなっちゃうでせう。

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

でも、確かに>>606の言う通り、あっちこっちにまたがって値を編集しちゃダメですね。
smarty構文はデザインとか見た目(まさにテンプレート)を自動生成するためだけに使わなきゃなぁと
ようやく結論づきました。

608 名前:nobodyさん mailto:sage [2009/08/10(月) 20:32:12 ID:???]
>>607
if(!isset($ary['faxNum'])) ($ary['faxNum'] = "-";

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


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

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

でいけない?

609 名前:nobodyさん mailto:sage [2009/08/10(月) 20:50:18 ID:???]
値未入力であることを示すのに、何を表示するのかはview側の仕様だわな。

ひょっとしたら先々仕様変更で「入ってまへんで、へよへよ」と表示するようになるかもしれん。
そのとき内部データにそんな値(内容)入れたくないだろ?
608の後半みたいにテンプレ側でやった方がいいよ。

610 名前:nobodyさん mailto:sage [2009/08/10(月) 22:51:30 ID:???]
>>608-609
うーん、そうか。
ケースバイケースでどうやるべきかじっくり考えてやってみるね
ありがとう

611 名前:nobodyさん mailto:sage [2009/08/10(月) 23:13:31 ID:???]
度々申し訳ない
{if}--{/if}の中で、smarty変数を生成できないの? assignと同じことをしたいんだけど
{if $var eq "hoge"}
$newVar = "hogeでした";
{/if}
みたいな…

612 名前:nobodyさん mailto:sage [2009/08/10(月) 23:15:44 ID:???]
assignでなんでだめなの?

613 名前:nobodyさん mailto:sage [2009/08/10(月) 23:42:39 ID:???]
>>612
assignはphp側の処理ですよね、テンプレ側で値を割り当てたいので。。

614 名前:nobodyさん mailto:sage [2009/08/11(火) 01:09:27 ID:???]
{assign} タグ使えば?



615 名前:nobodyさん mailto:sage [2009/08/11(火) 03:32:24 ID:???]
>>614
ありがとう! こんなのがあったのか。助かりました!

616 名前:nobodyさん mailto:sage [2009/08/11(火) 03:33:31 ID:???]
assignassign言うから当然テンプレート側のこと言ってると思ったら
assignタグすら知らんかったのか。

617 名前:nobodyさん mailto:sage [2009/08/11(火) 12:14:27 ID:???]
だからphpタグなんぞで処理したかったのか・・・。

618 名前:nobodyさん mailto:sage [2009/08/12(水) 05:56:44 ID:???]
$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が出力されます

619 名前:nobodyさん mailto:sage [2009/08/12(水) 06:23:13 ID:???]
varAryの中を見てみたら?

620 名前:nobodyさん mailto:sage [2009/08/12(水) 08:01:33 ID:???]
ループは回ってる?「名前は:」って文字は出力されてる?

{foreach from=$hogeAry item=varAry}
{foreach from=$varAry item=item key=key}
{$key}={$item}<br>
{/foreach}
{/foreach}

で中身表示テストしてみ。

621 名前:nobodyさん [2009/08/12(水) 10:23:00 ID:u9+iooGY]
>>620
0=z
0=z
0=z
とだけ出力して終わってます。。ループ自体はしてるってことですよね?
なんでだろ? 配列じゃないのかな。
上で書いた配列は、以下の実行結果です。(zendFWを使った、クエリの結果)

function gallery($uType,$uId){
$table = $this->_config->table->gallery;
$stt = $this->_db->fetchAll("SELECT * FROM {$table} WHERE `uType`=? AND `uId`=? AND `photo_on`=1 ORDER BY `id` LIMIT 10", array($uType,$uId));
return $stt;
}

$this->view->hogeAry = $this->_db->gallery('spot',$uId);


622 名前:nobodyさん mailto:sage [2009/08/12(水) 10:32:56 ID:???]
>>621
Smarty側に正常にassign出来てない可能性大。

1. hogeAryが正常な配列か確認。
var_dump($this->view->hogeAry);

2. hogeAryがSmartyにassignされてるか確認。

623 名前:nobodyさん [2009/08/12(水) 11:18:13 ID:u9+iooGY]
>>622
var_dump($this->view->hogeAry); の結果は
$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 )
)

.tplでの
{$hogeAry|@var_dump} の結果は
Array ( [0] => [1] => [2] => ) 1

{$hogeAry.0.photoName} の結果は
galleryPic7

ちゃんとテンプレートまでassignされてきてるってことですよね?
foreachだけがうまくいかないってことかなー

624 名前:nobodyさん mailto:sage [2009/08/12(水) 11:41:14 ID:???]
619はシカトですかそうですか



625 名前:nobodyさん [2009/08/12(水) 12:16:00 ID:u9+iooGY]
>>624
すみません、varAryの中身のチェックの方法がわからなかったもので。。

{foreach item=varAry from=$hogeAry}
{$varAry|@var_dump}<br />
{/foreach}
とりあえず思いつく限りで上記をやったら
string(0) ""
string(0) ""
string(0) ""
が返ってきます

{foreach item=varAry from=$hogeAry}
{$varAry.photoName}<br />
{/foreach}
だと何も返ってきません(改行3つだけです)

ほんとに済みませんでした

626 名前:nobodyさん mailto:sage [2009/08/12(水) 12:34:49 ID:???]
原因切り分けてみたら?
本当にDBから値は取れてるのか、違う関数コールしてないか、
ただの配列なら表示できるのか、などなど。
可能だったら再現するコードも貼って。

627 名前:nobodyさん mailto:sage [2009/08/12(水) 13:54:35 ID:???]
{debug} タグでassignされてる変数確認してみ。

628 名前:nobodyさん [2009/08/12(水) 17:19:17 ID:u9+iooGY]
>>626-627
どうもありがとうございます
普通の配列なら大丈夫です。同じDBから同様の手続きで取得してるクエリ結果(通常の配列)があるんですが、
それはforeachで解析できています。
{debug}はdisplay形式じゃないとダメみたいで、僕のやり方がそうじゃないので動きませんでした。

それで、今ループ処理をsection形式で試してみたんですが、section なら二次元配列の処理大丈夫でした。(以下が動きました。)
{section name=varAry loop=$hogeAry}
{$smarty.section.counter.total}<br> (このカウンターは動きませんでした)
要素: {$hogeAry[varAry].id}<br>
要素: {$hogeAry[varAry].photoName}<br>
要素: {$hogeAry[varAry].photo_text}<br>
{/section}
とりあえず、お騒がせして申し訳なかったですが、foreachは諦めてこっちで極力対応したいです。

629 名前:nobodyさん mailto:sage [2009/08/13(木) 16:40:28 ID:???]
結局原因は何なの?

630 名前:nobodyさん [2009/08/21(金) 13:05:34 ID:WhelcFIU]
質問させてください。
テンプレート中の {$hoge}って変数に対してphpのクラス中のメソッドを実行するって可能でしょうか?
これまでは、php中で
$hoge=$instance->method($hoge1,引数1,引数2);
として、適切な値を返してたんですが、同じ事をテンプレートの中でやりたいと思います。
{$hogetext|nl2br}などでphp関数を実行できるのは知ってるんですが、調べたところメソッドの実行は
見つけられませんでした。無理なんでしょうか?
assign 前に実行すべき?

631 名前:nobodyさん mailto:sage [2009/08/21(金) 14:42:48 ID:???]
修飾子プラグインの中でメソッド呼べばよいのでは

632 名前:nobodyさん mailto:sage [2009/08/21(金) 18:37:07 ID:???]
>>631
どうもありがとうございます
修飾子プラグイン、知りませんでした! 勉強になります、ありがとう

633 名前:nobodyさん mailto:sage [2009/08/21(金) 22:16:33 ID:???]
プラグインの中で他のプラグインの機能を呼び出すことってできますか?

634 名前:nobodyさん mailto:sage [2009/08/21(金) 22:16:56 ID:???]
できるよ



635 名前:nobodyさん [2009/08/22(土) 00:43:33 ID:qs0RE9DR]
修飾子プラグインの勉強始めたんですが、引数を2つもたせる方法がわかりません。
{$num}というsmarty変数に対して、

function smarty_modifier_NUMtoTEXT($num,$aryName){
 return $allAry[$aryName][$num];
}
というプラグインを実行したいんですがどう書いたら良いんでしょうか?
{NUMtoTEXT:$num:"boyAry"}とかやってみたんですがうまくいきません。

636 名前:nobodyさん mailto:sage [2009/08/22(土) 00:59:28 ID:???]
>>635
www.smarty.net/manual/ja/language.modifiers.php






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef