【PHP】 Smarty 隔離スレ 【テンプレート】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2008/02/02(土) 00:21:09ID:6cKcKeTp0834nobodyさん
2009/12/27(日) 21:01:57ID:???0836nobodyさん
2009/12/29(火) 11:34:24ID:???0837nobodyさん
2010/01/06(水) 21:51:18ID:???マニュアルって簡潔にまとめられてるからね
>>833の言ってるようなことは俺は分かるね
Webだけじゃなく、他にも構築する時にここどうすればいいんだっけ?って時に調べられないからね
情報が少なすぎて
0838nobodyさん
2010/01/07(木) 09:11:46ID:???日本語で複数出版されてるのは恵まれてる方だと思う。
まとめサイトは自分で立ち上げて、ある程度充実させられれば
他の人も情報を集めてくれるようになるかもよ。
0839nobodyさん
2010/01/07(木) 15:20:10ID:???Smarty入門しか知らないけれど・・・?
0840nobodyさん
2010/01/07(木) 16:37:46ID:???0841nobodyさん
2010/01/07(木) 23:58:21ID:???$smarty->assignで割り当てるのは変数だからキャッシュじゃないし
0842nobodyさん
2010/01/08(金) 00:03:40ID:???0843nobodyさん
2010/01/08(金) 09:13:25ID:???WEBに溢れている情報を漁るだけで、大抵の事は答え一歩手前まで調べられるだろ・・・
0844nobodyさん
2010/01/08(金) 10:58:43ID:???0845nobodyさん
2010/01/08(金) 11:57:09ID:???0846nobodyさん
2010/01/08(金) 12:11:21ID:???0847nobodyさん
2010/01/09(土) 17:17:11ID:???0848nobodyさん
2010/01/17(日) 19:36:43ID:???0849nobodyさん
2010/01/18(月) 03:14:17ID:???0850nobodyさん
2010/01/18(月) 11:28:14ID:???2枚以上のテンプレートをdisplay()する場合もあるし
0851nobodyさん
2010/01/18(月) 14:06:09ID:AGLkXiCO$smarty->assign('pref', array('01' => '北海道', '02' => '青森'));
{$pref.01}
で北海道が取れていたのだけど、
Smarty3Beta板では
{$pref['01']}
としないと取れなくなったのは仕様変更ですか?
0852nobodyさん
2010/01/18(月) 14:06:25ID:YiIR+7Mx$hoge = array(
array("name" => "aaaaa", "value" => 1),
array("name" => "bb", "value" => 2),
array("name" => "ccc", "value" => 3),
array("name" => "dddddd", "value" => 4)
);
$fuga = array(
array("value" => 2), array("value" => 4)
);
上記二つのような配列変数があります。
Smartyを使って、$hogeの内容をチェックボックスとして表示しようと思っています。
また、$fugaの内容と一致するvalueの部分を選択状態にしておきたいです。
(例)
□aaaaa ■bb □ccc
■dddddd
テンプレート側でどのように指定すれば、上記方法を実現できるでしょうか。
{foreach}を使おうと思ってるんですが・・・
0855nobodyさん
2010/01/18(月) 15:59:06ID:???foreachでやるなら普通にループさせて
要素を出すところでifで比較してchecked入れればいいんじゃない?
$fugaのデータ構造がそのまま使えなくてちょい面倒だけど
予め使いやすいように変換するか、更にループさせて全件比較すればいいかと
0856nobodyさん
2010/01/20(水) 22:11:47ID:q80CCbb+interface iSmarty { const MY_NAME = "foo"; }
class MySmarty extends Smarty implements iSmarty {/*設定*/}
{$smarty.const.MY_NAME}
値fooが表示されることを期待したのですが、MY_NAME(定数名)が表示されてしまいます。
マニュアルの{$smarty.const}の項を見ると、defineによる例が掲載されていて
確かにdefineで定義されていれば正しく値が表示されます。
バージョン2.1なのでちょっと古いのかなとも思うんですが、
php5のコードを追加するのは無理でしょうか。
0857856
2010/01/20(水) 23:35:47ID:???拡張も考えてみたのですが、もとがphp4ですから、こちらのPHP環境と合わせて考えると
サブクラスで定義した"クラス定数"をテンプレートから呼び出すことは
おそらく無理と判断しましたm(_ _)m
確かなことは言えませんが、クラスを変数で参照できるphp5.3以降でなら
プラグイン等で機能追加できるような気がします。
0858nobodyさん
2010/01/21(木) 04:40:11ID:???マニュアルの例はもうちょっと落ち着いて見直してみたほうがいいと思うけど
0859nobodyさん
2010/01/29(金) 18:46:34ID:???インサートプラグインが1ページに5、6個あるとかなり速度低下してきてしまう
0861859
2010/01/30(土) 10:34:45ID:???今はindex.tplに{insert name="hoge"}って書いて
[insert.hoge.php]
function smarty_insert_hoge($params, &$smarty) {
if(!$smarty->is_cached('plugin_hoge.tpl', "plugin|hoge")) {
DBからデータを取ってきてassign
}
return $smarty->fetch('plugin_hoge.tpl', "plugin|hoge");
}
DBに更新を加える時にclear_cacheという感じでやってるんですが、作り方としておかしいですか?
こういうインサートプラグインが増えてくると、is_cachedとfetchをその分しなきゃいけないんで遅くなってると思うんですが
smarty3だと改善されてるんでしょうか?
0862nobodyさん
2010/01/30(土) 11:59:30ID:???0863nobodyさん
2010/01/30(土) 12:29:50ID:???http://www.smarty.net/manual/ja/caching.cacheable.php
0864nobodyさん
2010/01/30(土) 14:12:57ID:???0866nobodyさん
2010/01/30(土) 15:09:07ID:???方法がよく分からない。
結局require_once "Smarty.class.php"しなきゃいけないんだよね?
意味分かる人教えてください
Smartyの読み込みコスト(時間)を削減する
ttp://code.xenophy.com/?p=73
0867nobodyさん
2010/01/30(土) 16:02:16ID:???効果も0.01秒だし
0868nobodyさん
2010/01/30(土) 16:56:45ID:???0869nobodyさん
2010/01/30(土) 16:57:37ID:???0870nobodyさん
2010/01/30(土) 17:23:46ID:???0871nobodyさん
2010/01/30(土) 17:31:09ID:???0872nobodyさん
2010/01/30(土) 18:09:30ID:???うちのサイトだと0.01秒早くなったら速度2倍だぜ
0873nobodyさん
2010/01/30(土) 18:11:35ID:???0875nobodyさん
2010/01/31(日) 16:37:31ID:tjv1ZgGAコンパイルエラーになりますが、たまにパーミッション設定を忘れたりして
こういう現状が度々あります。
忘れず確認すれば良い事ですが、なにか効率の良い方法はないでしょうか?
0876nobodyさん
2010/01/31(日) 16:53:46ID:???0877nobodyさん
2010/01/31(日) 17:59:24ID:tjv1ZgGA・コンパイル用のディレクトリがない場合、自動的に作成
と言うぐらいしか思いつきません
後者はis_dirでチェックすればいいと思うのですが、前者は方法自体わかりません・・・
0880nobodyさん
2010/02/02(火) 14:53:16ID:???0881nobodyさん
2010/02/02(火) 14:54:00ID:???0882nobodyさん
2010/02/02(火) 16:28:53ID:???0884nobodyさん
2010/02/03(水) 01:26:14ID:???PHPっぽく数学処理出来るのはいいよね。Smarty3。
開発に時間かけ過ぎてて、既に腐り始めている気がするけど。
extend欲しいな。
0885nobodyさん
2010/02/05(金) 12:00:27ID:1wZyvV1Qそういうのは最新版では治ってるの?
0886nobodyさん
2010/02/05(金) 16:09:07ID:???0887nobodyさん
2010/02/05(金) 18:17:12ID:???0888nobodyさん
2010/02/06(土) 16:55:05ID:???じゃ、nodefaultsにすりゃいいかというと、フォームのユーザが追加できるようにしている場合、
デフォルトの値(フォームのセレクトとか)にエスケープしたい文字があると途端に無理が出る
結局ロジック側でh()するしかなくなる
0889nobodyさん
2010/02/09(火) 13:31:36ID:Af+mgrun"Content-Type: image/jpeg"的な意味で。
0890nobodyさん
2010/02/10(水) 09:26:09ID:???0893nobodyさん
2010/02/12(金) 21:11:24ID:???displayやfetchしてる所でget_file_contentするだけだろ
しょーもな
0894nobodyさん
2010/02/12(金) 21:12:15ID:???0895nobodyさん
2010/02/17(水) 16:31:45ID:???確かにSmartyが有用なケースが思いつかない。
0896nobodyさん
2010/02/20(土) 12:34:03ID:???0897nobodyさん
2010/02/20(土) 12:44:55ID:???0898nobodyさん
2010/02/20(土) 17:16:25ID:0jUjLrgq変数に格納されたテンプレートを使うために
変数用のリソースプラグインを使って試行錯誤してるのですが
相談させてください。
このリソースプラグインに変数(テンプレートの内容)を渡す方法ですが
2つ思いつきました。
1つは
$hoge = "ここにテンプレートの内容";
$smarty->fetch("var:hoge");
のように変数名を渡して
プラグイン側で グローバル変数の$hogeの内容を取得。
しかしグローバル変数を使うというのがちょっと気になります。
もう1つの案は
$smarty->fetch("var:{$hoge}");
としてテンプレートの内容自体を渡す方法。
しかしこれだと長い名前の中間ファイル(template_cにできるファイル)
が作られてなんだか気持ちが悪いです。
毎回コンパイルでいいので中間ファイルは作られないほうがいいのですが
それもできない感じ。
みなさんはどうしてますか?
0899nobodyさん
2010/02/20(土) 22:01:34ID:???グローバル変数じゃなくてSmartyにassignされた変数を見るようにすればいいんじゃねーの?
0900898
2010/02/24(水) 09:57:22ID:???規制でかけなかった・・・
結局Smartyを拡張してプロパティを追加したら
プラグイン側で普通に見れました
>>899
ありがとうございます
なるほど、それは気づきませんでした
そのほうが手軽ですね
0901nobodyさん
2010/03/03(水) 01:14:47ID:???フレームワークをやったことなかったけど、比較的わかり易い。
0902nobodyさん
2010/03/03(水) 16:18:29ID:???http://www.kuwata-lab.com/presen/LL2007LT.pdf
14-15ページを見た感じだと制御はPHPそのままで
PHPタグ外部分はわざわざechoするのか・・・
0903nobodyさん
2010/03/04(木) 15:15:33ID:jG8+9EsN0904nobodyさん
2010/03/05(金) 09:36:42ID:???0905nobodyさん
2010/03/06(土) 00:22:27ID:3cIJcZyyこんな風に
$smarty->register_outputfilter("filterSjis");
function filterSjis($buff, &$smarty) {
return mb_convert_encoding($buff,"SJIS-win","UTF-8");
}
ブラウザで表示させると頭に「?」が入ってるんだけどこれはなぜでしょうか?
Smarty 2.6.26 PHP 5.3.2 です
0906nobodyさん
2010/03/06(土) 01:54:29ID:???0907nobodyさん
2010/03/06(土) 08:38:23ID:???その通りでした
0908nobodyさん
2010/03/06(土) 10:16:09ID:???0909nobodyさん
2010/03/06(土) 11:56:50ID:???普段はGAEでjavaなんだよ
これあげるからシネとかいわないで
http://mix-tube.appspot.com/
0910nobodyさん
2010/03/06(土) 12:20:22ID:???0911nobodyさん
2010/03/06(土) 13:54:43ID:???0912nobodyさん
2010/03/07(日) 07:30:25ID:???0913nobodyさん
2010/03/11(木) 09:30:07ID:???cache_lifetimeって以下の仕様じゃないんだね
10秒に設定→10秒経ってるキャッシュファイルは全て削除
0914nobodyさん
2010/03/11(木) 17:23:06ID:TZPJnNmb0915nobodyさん
2010/03/12(金) 13:20:51ID:???どの段階でclear_all_cacheするの?
0917nobodyさん
2010/03/12(金) 17:14:35ID:???再生成(上書き)されると思ってる。
つまり、要求されなきゃそのまま放っておかれる(わざわざ消さない)と。
0918nobodyさん
2010/03/12(金) 21:49:30ID:???0920nobodyさん
2010/03/13(土) 13:02:36ID:???0921nobodyさん
2010/03/13(土) 15:04:04ID:???0922nobodyさん
2010/03/13(土) 16:11:14ID:???0が毎回作成
CMSみたいに管理画面から更新するなら、
そのタイミングで必要な分だけキャッシュを削除すればいいしね
0923nobodyさん
2010/03/13(土) 16:11:51ID:???○キャッシュを使い続ける
でした
0924nobodyさん
2010/03/19(金) 17:17:56ID:KC5byG0jコンパイルしたときの中間ファイル(templates_cにできるやつ)
を作らないようにはできないでしょうか?
メモリ上で生成みたいな。
0925nobodyさん
2010/03/19(金) 17:23:37ID:???私も気になります
どなたかご教示お願い致します
0926nobodyさん
2010/03/19(金) 18:34:41ID:???Smartyテンプレートに変数を反映できるのに。
0927nobodyさん
2010/03/19(金) 19:03:47ID:???これをforの代わりに使うのか
0929nobodyさん
2010/03/19(金) 20:39:12ID:???0930nobodyさん
2010/03/20(土) 13:06:36ID:???コンパイルのときのファイル名が長すぎるってエラーになったぞ?
どうしてんの?
ファイル名固定にすると同時アクセスでやばそうな気がするし
0931nobodyさん
2010/03/23(火) 11:45:21ID:???0932nobodyさん
2010/03/24(水) 02:39:29ID:???これの意味がわからん・・・
0933nobodyさん
2010/03/24(水) 10:07:49ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。