[表示 : 全て 最新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/

715 名前:nobodyさん mailto:sage [2009/10/14(水) 00:36:04 ID:???]
>>713
ないよ。

PHP4でも5でもnewはリファレンスを返すんだけど、
PHP5でそれが明言されるまではnewを=するとnewなオブジェクトがコピーされるという迷信があった。
だから=&と書いてるところがたまにあるけど、Smartyマニュアルでも普通に=だ。
要するに、単なる誤解が生んだもの。

716 名前:nobodyさん mailto:sage [2009/10/14(水) 00:47:30 ID:???]
>>715
ほんとに? 俺も参照代入だよって説明どこかで読んだなぁ
あの解説ウソついたのかしら?

717 名前:nobodyさん mailto:sage [2009/10/14(水) 01:06:18 ID:???]
4なら意味あると思うが

718 名前:nobodyさん mailto:sage [2009/10/14(水) 01:30:24 ID:???]
>>715
つ ttp://jp2.php.net/manual/ja/language.oop.newref.php
どこでそんな嘘をきいたん?

ちなみに5でも代入で変数のコピーが行われるのは同じ。
違うのはオブジェクトのコピー時の内部動作がハッシュテーブルの複製から
オブジェクトの実体の参照カウンタ操作になっている点。(zvalの参照カウンタとは別ね)

719 名前:nobodyさん mailto:sage [2009/10/14(水) 03:14:45 ID:???]
ちょっとコード書いて実験すればわかるだろ
俺面倒だからパスね

720 名前:nobodyさん mailto:sage [2009/10/15(木) 18:15:01 ID:???]
みんなこんな曖昧なままに済ましてきたってことはあまり使ってない機能ってことかな
俺も使った覚えないわ、マニュアル本にも例なんてないし。損してるんだろうか。。

721 名前:nobodyさん mailto:sage [2009/10/16(金) 11:58:47 ID:???]
オブジェクトのリファレンスか。
使い道が思いつかんでもないが実際に
使う場面ってそうそうなさそうな。


722 名前:nobodyさん mailto:sage [2009/10/20(火) 06:10:16 ID:???]
Smarty 3だれか使ってみた??

723 名前:nobodyさん mailto:sage [2009/10/20(火) 10:43:32 ID:???]
使ってみた



724 名前:nobodyさん mailto:sage [2009/10/21(水) 00:53:52 ID:???]
Smarty3微妙だなぁ・・・相変わらず癖の強いコーディングで読むの疲れる。
extendリソースがあるんだけど、使い方解る人いる?

725 名前:nobodyさん mailto:sage [2009/10/21(水) 10:25:55 ID:???]
結局Smartyなんてassign、display、{if}、{foreach}だけで十分じゃん
というかコレが核だと思う
後は必要に応じて・・・って感じで十分だし

726 名前:nobodyさん mailto:sage [2009/10/21(水) 10:59:25 ID:???]
Smarty3のプラグインは何故グローバル関数なんだろ?
どこら変がPHP5 OOPなんだよ

727 名前:nobodyさん mailto:sage [2009/10/21(水) 22:34:20 ID:???]
プロパティもメソッドも全部publicは鬼だ
一方、__callでメソッドの外部化をしてる

extendリソースってどれ??

728 名前:nobodyさん mailto:sage [2009/10/22(木) 01:31:12 ID:???]
>>727
sysplugins/internal.resource_extend.php
ソースコメント読む限りでは他テンプレートエンジンのextendっぽいんだけど、
リソースとして定義されてるので、どう使っていいかよくわからんw

getTemplateSource()読むと、超強引にblockタグとか置換してるみたいなのであまり有用ではなさそうだけど・・・('A`;
2から乗り換える利点がまだ見えないなぁ

729 名前:nobodyさん mailto:sage [2009/10/22(木) 11:33:30 ID:???]
>>725
そんなこといったらPHPだって

730 名前:nobodyさん mailto:sage [2009/10/24(土) 20:08:39 ID:???]
smarty使ってるレンタルブログサイトとかないの?

731 名前:nobodyさん mailto:sage [2009/10/25(日) 04:49:32 ID:???]
>>730
あるとしてもユーザにSmartyフォーマットでのカスタマイズを許可するとは考えにくいな。

732 名前:nobodyさん mailto:sage [2009/10/25(日) 08:28:37 ID:???]
>>730
別にsmartyに限らず、独自の記法などで対応してるところはある。
Smartyじゃないとダメなら自分で作ればいいジャマイカ。

733 名前:nobodyさん mailto:sage [2009/10/27(火) 00:14:32 ID:???]
中身はsmartyだけど、smartyフォーマットは使わせないようにして
<%hogehogeLoop>と書いたら{section name=hoge loop=$id} になるように置換してるブログシステムはあるかもしれない
大体は自前でやってるか、MovableTypeの改造版じゃないかな



734 名前:nobodyさん mailto:sage [2009/10/27(火) 12:20:20 ID:???]
>>725
それだけしか使わないならもっと速いテンプレートエンジンあるんじゃない?

735 名前:nobodyさん mailto:sage [2009/10/27(火) 12:23:42 ID:???]
>>734
それなんてPHP?

736 名前:nobodyさん mailto:sage [2009/10/27(火) 20:55:46 ID:???]
カラーミーショップ プロ
ttp://shop-pro.jp/

ブログじゃなくてネットショップだけど、テンプレートにsmarty使ってるね
EC CUBEの改造版なんだろうけど

737 名前:nobodyさん mailto:sage [2009/10/27(火) 21:04:25 ID:???]
Smartyでレンタルブログ運営したら重くてしかたないんじゃない?
ユーザー大量にいたらキャッシュ効かせても厳しい気がする

738 名前:nobodyさん mailto:sage [2009/10/28(水) 05:06:51 ID:???]
それは設計の問題であり、Smatyが原因にはなり得ない。

739 名前:nobodyさん mailto:sage [2009/10/28(水) 11:11:33 ID:???]
Smartyの設計の問題ってことですね

740 名前:nobodyさん mailto:sage [2009/10/28(水) 13:46:19 ID:???]
おしい。Smartyを使う人の設計の問題。

741 名前:nobodyさん mailto:sage [2009/10/28(水) 15:26:33 ID:???]
>>737
気のせい

742 名前:nobodyさん mailto:sage [2009/10/29(木) 11:06:44 ID:???]
いい話題がありませんねー

743 名前:nobodyさん mailto:sage [2009/10/29(木) 21:54:28 ID:???]
gooブログの有料版の説明のとこにこんな記述がある
{include file="/home/gooblog/Smarty/blog/templates/comment_link.tpl"}

パスにSmarty入ってますがな



744 名前:nobodyさん mailto:sage [2009/10/30(金) 22:56:36 ID:???]
実際にロジックとテンプレート合わせないとテンプレート側の文法の間違い分からないの?

745 名前:nobodyさん [2009/11/01(日) 07:20:38 ID:ZF01kyEW]
Smarty 3.0 Beta 1 Released

746 名前:nobodyさん mailto:sage [2009/11/01(日) 10:57:23 ID:???]
>>744
確かにできないな
まあ元々プログラマーと別環境で作業すること自体難しい気はするが。
>>745
モノリンガルの俺には厳しいようだ

747 名前:nobodyさん mailto:sage [2009/11/01(日) 11:05:45 ID:???]
>>745
突撃してみるか

748 名前:nobodyさん [2009/11/09(月) 13:54:09 ID:jgJG5jOb]
テンプレートに定義していないコード(例えば{test}など)がある場合、
Smarty errorが表示されます。

このエラーを表示しない方法はないのでしょうか?
PHPのエラー表示をしない事で対処するしかないのでしょうか?

749 名前:nobodyさん mailto:sage [2009/11/09(月) 14:06:20 ID:???]
trigger_errorしてるところをスキップしちゃえば?

750 名前:nobodyさん [2009/11/09(月) 20:59:58 ID:I33d9sv+]
$error_reporting
↑これ?

751 名前:nobodyさん [2009/11/11(水) 19:01:43 ID:0BFUpwQj]
Smartyって、テンプレートの中にテンプレートを読み込むようなことできる?
ある変数の値によって、特定の領域の内容をかなりダイナミックにレイアウトごと変更させたいんだけど
変化のバリエーションがかなり多いんで{if}でパターン分け記述するのはあまり現実的じゃないんだよね

外部でhtmlとして整形したものを丸ごとコントローラでassignさせて飲み込ませるしかないかな?

752 名前:nobodyさん mailto:sage [2009/11/12(木) 03:03:02 ID:???]
そのレベルも調べられないお前には無理だ。

753 名前:nobodyさん [2009/11/12(木) 07:44:56 ID:dv0ticwo]
Smarty 3.0 Beta 2 Released



754 名前:nobodyさん mailto:sage [2009/11/12(木) 11:31:04 ID:???]
>>752
おー、サンキューサンキュー♪
includeって機能があったんだね、この辺から調べてみるよ
たすかったわほんと、ありがとね

755 名前:nobodyさん mailto:sage [2009/11/12(木) 12:04:54 ID:???]
test

756 名前:754 [2009/11/12(木) 19:22:51 ID:SoSJwGM8]
ごめん、相談させて欲しい
hoge.tplに
{insert name="hogeAction" title="テスト" script="hoge_action.inc.php"}
って書いて、
同じディレクトリにあるhoge_action.inc.php に
<?php
function smarty_hogeAction($param, $smarty){
return 'あいうえお';
}
?>
って書いたんだけど「あいうえお」の出力がされない。
($param, $smarty)の引数を消して function smarty_hogeAction(){… とやってもダメだ。
何が問題かな? ご意見よろしくお願いします

757 名前:nobodyさん mailto:sage [2009/11/12(木) 19:58:44 ID:???]
書き間違えた
× smarty_hogeAction
○ insert_hogeAction
でやってます

758 名前:756 mailto:sage [2009/11/12(木) 22:52:47 ID:???]
どうも、自己解決しました。
お騒がせしました

759 名前:nobodyさん mailto:sage [2009/11/13(金) 13:18:08 ID:???]
どういう解決方法?

760 名前:756 mailto:sage [2009/11/13(金) 14:36:48 ID:???]
勘違いしてたというか参考にしてたページがわかりにくかったというか、
要するに
.tplでの記述は {insert name="hogeAction"}
スクリプトファイルは insert.hogeAction.php
ファイルの格納場所は /pluginsディレクトリ
として入れてりゃ良いだけの話だった。自前modifierとかわらんかった。
insertタグのscript属性とかなくても良いものを必須みたいに書いてたり、
関数名(function insert_hogeAction(-,-){-})を嘘書いてるサイトみて
変なことやりまくってたよ。恥。

761 名前:nobodyさん mailto:sage [2009/11/13(金) 14:58:34 ID:???]
公式マニュアル見ればよかったのにね

762 名前:756 mailto:sage [2009/11/13(金) 15:11:57 ID:???]
>>761
うん、公式がイマイチわからなくて他のサイトみてたらハマっちゃって。
今また公式見返してるけどやっぱりよくわからない
www.smarty.net/manual/ja/language.function.insert.php
「{insert} 関数の名前は、 ネームスペースの衝突を避けるために "insert_" によって始まる必要があります。」
ってあるけど、それじゃ上手くいかなくて
smarty_insert_hogeAction() って形でやっと上手くいったからなぁ…

こっちの方が公式よりわかりやすかった、俺が物わかり悪いんだろうけど
www.y2sunlight.com/ground/?PHP5.0%2F8.Smarty%A4%F2%CD%FD%B2%F2%A4%B9%A4%EB

763 名前:nobodyさん mailto:sage [2009/11/13(金) 15:22:56 ID:???]
そりゃプラグインとしてファイルを自動読み込みさせてるからだ
www.smarty.net/manual/ja/plugins.naming.conventions.php
>PHP ファイル内で定義する プラグイン関数 は次のように指定します。
>smarty_type_name()




764 名前:756 mailto:sage [2009/11/13(金) 16:02:41 ID:???]
>>763
そうなの。おおお、疑問の本質に近づいてきた、質問させて。
じゃあsmarty_insert_xxx じゃなくて insert_xxx()ってのはプラグイン(別ファイル自動読み込み)じゃないのか。
そもそもinsert_xxx()ってどこに書くの?
$smarty->assign("msg","hello"); みたいな処理を書いてるコントローラ?の.php?
それがわからなくてあっちこっち見る迷走がスタートしたんだ

765 名前:nobodyさん mailto:sage [2009/11/13(金) 16:19:30 ID:???]
偉そうなので教えん

766 名前:nobodyさん mailto:sage [2009/11/13(金) 20:01:32 ID:???]
自分で試せばいいのに。

767 名前:nobodyさん mailto:sage [2009/11/14(土) 14:51:09 ID:???]
キャッシュ効かせても速度あんまり変わらなくね?なんなのこれ

768 名前:nobodyさん mailto:sage [2009/11/14(土) 19:37:58 ID:???]
下記のように、フォームでエラーがあればp要素を表示、なければ何も表示しない場合、
みなさんは、どこまで、どんな方法でテンプレートを利用していますか?
<p class="error">※必須項目です。記入してください。</p>
<p><input type="text" name="mail" value=""></p>

1. エラーメッセージは最初からpでマークアップ済み、そのままassign、smartyには{}のみ
{$errors.mail}

2. エラーメッセージはテキスト、assign時に空欄かどうか判定してpでマークアップ、smartyには{}のみ
{$errors.mail}

3. $errorsにはテキスト、そのままassign、smartyで{if}処理
{if $errors.mail}<p class="error">{$errors.mail}</p>{/if}

4. $errorsにはテキスト、そのままassign、smartyで関数処理
{$errors.mail|markupFunction}

デザイナさんと分業する場合、
プログラム側がマークアップに関わらない3.が一番いい気がしているのですが、
少しテンプレートファイルが煩雑になるのが気になったりもします。

エラーメッセージマークアップ用の小さなテンプレートファイルを作っておいて、
4.のmarkupFunctionから読み出して利用すると比較的キレイな気もしますが、
テンプレートファイルが小分けになるのも煩雑といえば煩雑な気もします。

769 名前:nobodyさん mailto:sage [2009/11/15(日) 03:44:59 ID:???]
>>767
Apacheの連続アクセステストしたけど、アクセス回数が多ければ多いほど
キャッシュの効果は効いたよ。ただし、1.2〜3倍速くなる程度だけど。
>>768
ブログのテンプレみたいなのを作ってるが、3が一番良いよ。
MTなんかもそうだし。

770 名前:nobodyさん mailto:sage [2009/11/15(日) 07:22:36 ID:???]
自分はクラスだけでやってる。

エラーは常に埋め込まれ、CSSで非表示にしておく。もしエラーなら親要素にerrorというクラスを与えて、その子要素のエラーを表示するCSSを書いておく。

div p{ display:none }
div.error p{ display:block }

これでエラー時のテキストもデザイナー側で書ける。

親要素は
<div class='{$error.title}'>
って感じで、タイトル項目がエラーなら error.title に 'error' を assign しておくだけ。

771 名前:潔癖プログラマ mailto:sage [2009/11/15(日) 10:24:50 ID:???]
>>769
やはり3.ですか。

ただその場合
$errors.mailに値があればいいんですけど、
値がなくifがfalseになると、その行末の改行が無視されて
次の行のインデントが崩れちゃうのが気になります。
{/if}のあとに空白1文字入れとくと回避できますが、
「よろしくないテクニック」っぽくて好きになれません。
>>703でも話題にでていたようですが、
このsmartyの仕様は気に入りません(苦笑)。

{if $errors.mail}
    <p class="error">{$errors.mail}</p>
{/if}

こんな感じで3行使うのがいまのところ最善か。
テンプレートファイルがますます煩雑に…(苦笑)。


>>770
CSSのdisplayだけで制御するのは、
自分も一瞬頭をよぎったことはありますが、
やはり気持ちが悪いですごめんなさい。

あとエラー時のテキストが「入力内容をご確認ください」程度ならいいけど、
「メールアドレスが正しくありません」
「必須入力項目です」
「文字数が多すぎます」
とか丁寧に表示してあげる場合に対応しにくい気がします。

772 名前:nobodyさん mailto:sage [2009/11/15(日) 21:24:49 ID:???]
>>770
CSS切っている環境とか携帯対応を考えた場合は向かない仕様だな

773 名前:nobodyさん mailto:sage [2009/11/15(日) 22:48:09 ID:???]
んなもん、{$err} にしといて、
errに <p class="error">エラーメッセージ</p> ぶち込みだわ。



774 名前:nobodyさん mailto:sage [2009/11/16(月) 00:55:30 ID:???]
>>768
汎用性やら考えると3じゃないかな。
他の方法だと、特定箇所だけ見た目を変えたい時にデザイナ側で対応しにくい気がする。
テンプレートを関数もどきとして使うような方法もありかもしれない。

// エラー表示箇所
{include file="error.tpl" error=$errors.mail}

// エラー表示テンプレート error.tpl
{if $error}
<p class="error">{$error}</p>
{/if}

775 名前:潔癖プログラマ mailto:sage [2009/11/16(月) 09:18:08 ID:???]
>>774
なるほど。4.の別解のような感じですが、
それだとincludeするテンプレファイルまでデザイナさんに任せられるので、
複数パターンのテンプレファイルが用意できたり汎用性が高そうですね。

図らずも(?)、{if}による改行問題も、
別ファイルに追い出すことで解決できてるし、
なかなか良いかもしれません。

776 名前:nobodyさん [2009/11/16(月) 12:51:37 ID:tubifOLG]
Smartyは遅いって意見ありますが、体感レベルで明らかに遅いですか?
1秒2秒遅くなった経験がある人いるんでしょうか?

777 名前:nobodyさん mailto:sage [2009/11/16(月) 23:39:48 ID:???]
そんなに遅くないよ。
「遅い」って感じるのは鯖が悪いんだろ

778 名前:nobodyさん mailto:sage [2009/11/17(火) 02:12:17 ID:???]
>>776
古いサーバPC上でキャッシュを無効にして使っても、0.001秒の処理が0.002秒になる程度。
数値的には2倍だが、体感的にはまずわからない。

素のPHPコードに比べたら遅いと言えるが、
個人的にはメリットの方が桁違いに上かな。

779 名前:nobodyさん mailto:sage [2009/11/17(火) 02:16:05 ID:???]
>>777,778
よかったー。いかにもノロノロしてるような状態になるのかと思いました。
安心して作れます、ありがとう

780 名前:nobodyさん mailto:sage [2009/11/17(火) 03:18:29 ID:???]
じゃキャッシュのメリットって何?って感じだな

781 名前:nobodyさん mailto:sage [2009/11/17(火) 06:08:10 ID:???]
Smarty 3.0 Beta 3 Released
ペース早いな

782 名前:nobodyさん mailto:sage [2009/11/17(火) 13:05:14 ID:???]
>>780
更新が少ないもしくは、更新タイミングが決っている場合にキャッシュ有効にすればいい。
大規模サイト用のチューニング項目だと思えばいいんじゃないかね。

783 名前:nobodyさん mailto:sage [2009/11/17(火) 15:47:08 ID:???]
>>780
769にも書いたけど、負荷テストした時は効果合ったよ。
同時アクセス100とか1000の場合に。



784 名前:nobodyさん mailto:sage [2009/11/19(木) 15:56:07 ID:???]
多数の他人に更新させる場合はキャッシュオフ?
掲示板とかね
有効にしといて書き込まれたタイミングでキャッシュ削除するのかな

785 名前:nobodyさん mailto:saga [2009/11/20(金) 13:27:52 ID:???]
ぴーえちぴー5.3.0
りなくす

Smartyでテンプレートが無い場合に白い画面になっちゃうんで、エラーをハンドリングしたいんですけど出来ないでしょうか?
テンプレートがあるか判定なんてめんどーなことしないといけないんですかね?

786 名前:nobodyさん mailto:sage [2009/11/20(金) 13:53:02 ID:???]
できるでしょ
そもそもfatal errorなり出るはず

787 名前:nobodyさん mailto:sage [2009/11/20(金) 13:55:42 ID:???]
PHPのerror_reportingが0になってるとかじゃね?

788 名前:nobodyさん [2009/11/20(金) 14:07:49 ID:L1RHfQMx]
try
{
$smarty->display($tpl);
}
catch
{
なんたら
}
みたいにやりたいです。
エラーレポ調べてみます。

789 名前:nobodyさん [2009/11/20(金) 14:24:17 ID:L1RHfQMx]
error_reportingはnullのようです。ログに出して確認。
3に設定して見ましたが例外はキャッチできませんでした。3が間違いなんでしょうか?

>>786
それは戻り値として出るということですか?

790 名前:nobodyさん mailto:sage [2009/11/20(金) 14:27:34 ID:???]
>>789
error_reporting(E_ALL);

791 名前:nobodyさん mailto:sage [2009/11/20(金) 14:30:40 ID:???]
>>789
もしかしてxampp?

792 名前:nobodyさん [2009/11/20(金) 14:32:43 ID:L1RHfQMx]
displayのソース見ましたが、エクセプションはスローされないようですね…
素直にtemplate_exist使いたいとおもいます。

>>786
voidですね。


793 名前:nobodyさん mailto:sage [2009/11/20(金) 15:02:58 ID:???]
fatal error出るでしょに対する返答がvoidですとか謎い



794 名前:nobodyさん [2009/11/20(金) 15:05:46 ID:L1RHfQMx]
display_errors = Off

display_errors = On
httpd restart

error_reporting(E_ALL);
try
{
$smarty->display($tpl);
}
catch
{
なんたら
}

>>791
XAMPPじゃないです。それぞれソースからいれました。

795 名前:nobodyさん [2009/11/20(金) 15:09:05 ID:L1RHfQMx]
あ、794の結果はダメでした。同じ結果で白い画面になります。

>>793
789への自己レスです。


796 名前:nobodyさん mailto:sage [2009/11/20(金) 15:12:27 ID:???]
ちょろっとググってみたらこんなんもあった

(2)Smartyのファイルを調べてみる
画面が真っ白になった原因として、Smartyのファイルが壊れていることがあるのです。
xoops-manual.net/modules/smartsection/item.php?itemid=17


797 名前:nobodyさん mailto:sage [2009/11/20(金) 15:14:35 ID:???]
>>794
テンプレートファイルが無かった場合に出るエラーは
Smarty.class.phpの1591行目くらいにある
$this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"');
でしょ?

で、例外をスローさせるための案
1.当該箇所を書き換える
2.Smartyクラスを継承したMySmartyクラスを作って_fetch_resource_infoメソッドをオーバライドする
3.set_error_handler関数でwarningが発生した時に例外投げるようにする

xamppじゃないとのことなので真面目に答えてみました

798 名前:nobodyさん [2009/11/20(金) 15:25:36 ID:L1RHfQMx]
>>797
おぉ、まさに欲しかった回答です。
ありがとうございます。
そのワーニングで間違いないです。

1…書き換えるのは好きじゃないです。
2…うーん、処理に悩みそうです。
3…これが簡単そうです。

ちょっとがんばってみます。
たすかります。

799 名前:nobodyさん mailto:sage [2009/11/21(土) 10:25:34 ID:???]
fetchってどういうとき使うの?

800 名前:nobodyさん mailto:sage [2009/11/21(土) 11:47:09 ID:???]
自動送信・返信メールの文面とか。

801 名前:nobodyさん mailto:sage [2009/11/21(土) 13:04:20 ID:???]
>>800
ありがと、メールのテンプレか
就活してたときの毎ナビか何かの企業からメールに
『こんにちわ寒くなりましたね、{$username}さん』
とか、書いてあったのを思い出した

802 名前:nobodyさん mailto:sage [2009/11/21(土) 15:18:41 ID:???]
>>798
普通は三番
サンプルは沢山見つかる

803 名前:nobodyさん [2009/11/26(木) 11:34:27 ID:tP8Fcb0C]
しつもんです
parent.tpl中で、includeを使ってテンプレート化したヘッダを読み込ませたいと思ってるんですが
テンプレート(header.tpl)をページの種類に応じて動的に変更させたいときの手順がよくわからないです。
たとえば、動物の紹介ページでは動物の一覧を、自動車の紹介ページでは自動車の一覧をヘッダに表示したい時、
表示対象の画像や情報(動物写真/自動車写真、それぞれの名前情報など)は、includeタグの中に変数として
持ち込むしかないのでしょうか?

自分のイメージでは{include file='header.tpl' pageType='animal'}として、
変数値animalを受け手のテンプレで解釈してそれを元にDBから必要データを取得できたらいいなと思ったんですが。
(なるべく一カ所で取得プロセスを管理したいので)
そんなのは無理で、あらかじめ親のparent.tpl=parent.phpで必要データを取得して、
それをincludeに変数で渡すしかないという結論でいいのでしょうか?

今思いついた方法は、incudeタグ中の変数でpageType='animal'と渡して、それをheader.tplで
自前のmodifierに譲渡しそこから必要データ取得→出力の流れです。
もっとスマートなやり方ないでしょうか? アドバイスお願いします



804 名前:nobodyさん mailto:sage [2009/11/26(木) 15:51:29 ID:???]
>>803
何を言ってるのか良く分からないけど
>変数値animalを受け手のテンプレで解釈してそれを元にDBから必要データを取得できたらいいなと思ったんですが
すればいいのでは?

805 名前:nobodyさん mailto:sage [2009/11/26(木) 15:52:24 ID:???]
補足、テンプレートファイルで解釈するのではなくPHP側でという意味で。

806 名前:nobodyさん mailto:sage [2009/11/26(木) 16:04:59 ID:???]
余計意味がわからない。
なぜmodifier?function作れば?

807 名前:803 [2009/11/26(木) 23:09:48 ID:tP8Fcb0C]
皆さんありがとうございます
>>804
header.tplって、単独のページとしては存在しないあくまでパーツのテンプレートなので、
index.tplに対するindex.phpの様なコントローラ(?)のファイルってheader.tplにはないのではと
考えたのですが…(header.phpにアクセスすることはないと思うので)
思い違いなのでしょうか?
>>806
勉強不足なのかもしれません、functionについて調べてみます。ありがとうございます。

808 名前:nobodyさん mailto:sage [2009/11/26(木) 23:58:18 ID:???]
>>807
includeするんだからindex.phpでやればよいのでは?

809 名前:803 mailto:sage [2009/11/27(金) 01:09:41 ID:???]
>>808
あ、親のページでってことですか、、なるほど!
1)ページのテーマ(animalとか)を引き渡されてDBに働きかけるphpを外部化し、
2)それをheader.tplの親のanimal.php, car.phpなどに読み込んで、
3)結果をincludeタグ渡す
って感じでいいかな。
これならデータの取得部分が複数にばらけることもないのか。。
これのデータ取得の順番を変えたものがfunctionでやるってパターンかもしれない

ありがとうございます。チャレンジしてみます

810 名前:nobodyさん [2009/11/29(日) 07:42:11 ID:wdDHDadn]
テンプレート関数プラグインのfunction(smarty.hogefunc.php)を作ったんですが、
<?php
$var = "abc";
function smarty_function_hogefunc($params, &$smarty){
global $var;
return $var;
}
?>

上記の内容で <div>text</div>{hogefunc} としてもabcを出力しません、なぜでしょうか?
パスが通ってることは確認済みで、 $var="abc"; を echo "abc" とした場合、
abc<div>text</div>の形で出力するようです。
変数のスコープのチョンボをしてるのかなと考えてはみたんですが…
function …{〜} の外に書かれたものは正常に処理されないという仕様なんでしょうか?
申し訳ありませんが、ご意見宜しくお願いします

811 名前:nobodyさん mailto:sage [2009/11/29(日) 13:22:28 ID:???]
お前は何を言ってるんだ

812 名前:nobodyさん mailto:sage [2009/11/29(日) 14:16:45 ID:???]
return "abc";

してみればいいじゃない。

813 名前:810 mailto:sage [2009/11/29(日) 23:16:09 ID:???]
>>812
functionの中でreturn "abc"; すると、それは返すんです。
なんでかなぁ
>>811
わかりにくかったみたいですみません



814 名前:nobodyさん mailto:sage [2009/11/30(月) 09:19:43 ID:???]
functionの中で

・print_r($_GLOBALS)してみる
・echo $varしてみる

815 名前:nobodyさん [2009/12/02(水) 14:25:43 ID:1PNbu+TX]
www.youtube.com/watch?v=lsPL2QoElmw
www.youtube.com/watch?v=DyzzLwlIcpE
www.myspace.com/ametsub3110

www.youtube.com/watch?v=BDD9MZUTQzs
www.myspace.com/serphinjapan

www.apple.com/jp/quicktime/download/
www.jimbeard.com/boomer.html
www.jimbeard.com/Beard%20mp3s/Song%20of%20the%20Sun%20128/Camieff%20Wb.01_01.mp3
www.jimbeard.com/Beard%20mp3s/Song%20of%20the%20Sun%20128/Parsley%20Trees%20Wb.01_01.mp3
www.jimbeard.com/Beard%20mp3s/Truly%20128/Hand%20to%20Hand%20Wb.01_01.mp3
www.jimbeard.com/Beard%20mp3s/Truly%20128/Gonna%20Tell%20on%20You%20Wb.01_01.mp3






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

前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