- 1 名前:nobodyさん [2008/02/02(土) 00:21:09 ID:6cKcKeTp]
- まぬあるwww.smarty.net/manual/ja/
- 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
- 816 名前:nobodyさん mailto:sage [2009/12/04(金) 17:16:31 ID:???]
- smartyのキャッシュを有効にするとサイドバーにinsertしておいたプラグインが上のほうに来てしまうんだけど、何か原因わかりませんか?
ブラウザで見るソースとcacheフォルダのキャッシュを見ると、DOCTYPEタグより上にプラグインの中身が出てしまってるんです
- 817 名前:816 mailto:sage [2009/12/05(土) 18:55:21 ID:???]
- あー、すげー馬鹿なことやってた
insertプラグインって中でechoしちゃダメなのかreturnしないとイケないのか キャッシュオフのときは正常に見えるから気付かなかった
- 818 名前:nobodyさん mailto:sage [2009/12/07(月) 16:47:15 ID:???]
- だからいったじゃん
- 819 名前:nobodyさん [2009/12/09(水) 10:32:51 ID:AWY/enbH]
- 一部キャッシュして欲しくない部分があるんですが、そこだけ{insert}にして外に出すしかないんでしょうか?
- 820 名前:819 mailto:sage [2009/12/10(木) 15:56:47 ID:???]
- なさそうですね
- 821 名前:nobodyさん mailto:sage [2009/12/13(日) 22:00:00 ID:???]
- >>820
これだとだめなん? ttp://www.smarty.net/manual/ja/caching.cacheable.php
- 822 名前:nobodyさん mailto:sage [2009/12/13(日) 23:07:04 ID:???]
- >>821
ありがとうございました
- 823 名前:nobodyさん mailto:sage [2009/12/15(火) 15:00:29 ID:???]
- Warning: Smarty error: unable to read resource:
のエラーが出る際に、 自分で作った404エラーページ(のテンプレ)を読み込むことはできますでしょうか?
- 824 名前:nobodyさん mailto:sage [2009/12/15(火) 15:56:24 ID:???]
- とりあえずそれは404じゃない。
$error_reportingを参照したらいいとおもう。
- 825 名前:823 mailto:sage [2009/12/15(火) 16:39:30 ID:???]
- 自己解決しました。
- 826 名前:nobodyさん mailto:sage [2009/12/25(金) 18:27:23 ID:???]
- SmartyってWebで検索してもマニュアルかその複製しか全然情報が出てこないけど、どっかいいサイトないですか?
マニュアルはサンプルとか説明が簡単すぎて知りたい情報が出てこないのですが・・・ 例えばdefault_resource_typeプロパティで、デフォルトのfile以外の値を知りたいのに、それどころかサンプルすら書かれていなかったり困ります リソースプラグインの事ももっと知りたいんですが見つかりません PEARでも感じましたが、なんでこう情報が少ないんでしょうかね? マニュアルとそのコピー以外の情報が出てきません
- 827 名前:nobodyさん mailto:sage [2009/12/25(金) 19:02:01 ID:???]
- PEARもSmartyも情報は溢れてるよ。
無いのは君の理解力だろう。 Smartyに至ってはマニュアルあれば大抵は事足りる。 リソースプラグインに関しても、マニュアル読んでわからん人には無縁なんじゃねぇかな。 あれ以上丁寧な解説求めるなら金払ってスクールにでも通えばいい。
- 828 名前:nobodyさん mailto:sage [2009/12/25(金) 21:36:44 ID:???]
- ソースも結構シンプルだから
謎があったら追い掛けてみたら?
- 829 名前:nobodyさん mailto:sage [2009/12/26(土) 18:39:45 ID:???]
- >>827
溢れているとまではいかないんじゃないかと俺は思う
- 830 名前:nobodyさん mailto:sage [2009/12/27(日) 00:20:26 ID:???]
- 具体的にどんな情報が欲しいの?
「俺の知りたい情報が無い」ってだけじゃ、教える側もわからんだろう default_resource_typeにしたって、リファレンスのテンプレートリソースとリソースプラグインの項目に十二分な情報載ってると思うしなぁ ここまで枯れた技術なのに、情報が足りないってのは調べる力か理解力が無いとしか思えないんだが
- 831 名前:nobodyさん mailto:sage [2009/12/27(日) 11:58:44 ID:???]
- もし情報がなかったとしたらこのスレがもっと賑わってると思うんだ
- 832 名前:nobodyさん mailto:sage [2009/12/27(日) 13:02:13 ID:???]
- いやそもそもSmarty使いの絶対数がすくなうわなにをするやめ
- 833 名前:nobodyさん mailto:sage [2009/12/27(日) 19:56:19 ID:???]
- >>831
「もし情報があったとしたら〜」なら同意できるんだけどな。 ブログなんかでちょこっと取り上げているサイトはあっても ユーザー同士で語り合うようなコミュニティは無い。 マニュアル見ろよってのは当たり前の行為で、 Smartyはそれ以上の使い方(サイト構築のテンプレ利用など)があるから 使い方やアイディアをまとめたサイトがあれば良いとは思う。
- 834 名前:nobodyさん mailto:sage [2009/12/27(日) 21:01:57 ID:???]
- コンパイルせず使う方法ないのかな
- 835 名前:nobodyさん mailto:sage [2009/12/29(火) 11:19:04 ID:???]
- >>833
コミュニティか・・・ たとえば2chにSmartyスレたてたらいいんじゃないかな
- 836 名前:nobodyさん mailto:sage [2009/12/29(火) 11:34:24 ID:???]
- 名案だな。
- 837 名前:nobodyさん mailto:sage [2010/01/06(水) 21:51:18 ID:???]
- 俺もSmartyのしっかりとしたサイトってないなとは思ってた
マニュアルって簡潔にまとめられてるからね >>833の言ってるようなことは俺は分かるね Webだけじゃなく、他にも構築する時にここどうすればいいんだっけ?って時に調べられないからね 情報が少なすぎて
- 838 名前:nobodyさん mailto:sage [2010/01/07(木) 09:11:46 ID:???]
- 書籍は?
日本語で複数出版されてるのは恵まれてる方だと思う。 まとめサイトは自分で立ち上げて、ある程度充実させられれば 他の人も情報を集めてくれるようになるかもよ。
- 839 名前:nobodyさん mailto:sage [2010/01/07(木) 15:20:10 ID:???]
- Smartyの本ってある?
Smarty入門しか知らないけれど・・・?
- 840 名前:nobodyさん mailto:sage [2010/01/07(木) 16:37:46 ID:???]
- PHPのウェブアプリの本だとSmarty出てきたりするな
- 841 名前:nobodyさん mailto:sage [2010/01/07(木) 23:58:21 ID:???]
- Smartyのキャッシュ機能ってなにをキャッシュしてるん?
$smarty->assignで割り当てるのは変数だからキャッシュじゃないし
- 842 名前:nobodyさん mailto:sage [2010/01/08(金) 00:03:40 ID:???]
- すまんアホなこと書いた
- 843 名前:nobodyさん mailto:sage [2010/01/08(金) 09:13:25 ID:???]
- だから具体的にどんな情報が欲しいんだよw
WEBに溢れている情報を漁るだけで、大抵の事は答え一歩手前まで調べられるだろ・・・
- 844 名前:nobodyさん mailto:sage [2010/01/08(金) 10:58:43 ID:???]
- Smartyをカッコよく使いこなす方法
- 845 名前:nobodyさん mailto:sage [2010/01/08(金) 11:57:09 ID:???]
- 2chで教えて君をしてる時点でかっこわるい
- 846 名前:nobodyさん mailto:sage [2010/01/08(金) 12:11:21 ID:???]
- もっとSmartyをスマートに使う方法
- 847 名前:nobodyさん mailto:sage [2010/01/09(土) 17:17:11 ID:???]
- 使いこなし方まではWebで出てこないな、確かに
- 848 名前:nobodyさん mailto:sage [2010/01/17(日) 19:36:43 ID:???]
- Smarty使う場合はdisplay()以降に処理は記述しない方が吉?
- 849 名前:nobodyさん mailto:sage [2010/01/18(月) 03:14:17 ID:???]
- 凶
- 850 名前:nobodyさん mailto:sage [2010/01/18(月) 11:28:14 ID:???]
- 別にそんなことはないかと思うが
2枚以上のテンプレートをdisplay()する場合もあるし
- 851 名前:nobodyさん [2010/01/18(月) 14:06:09 ID:AGLkXiCO]
- smarty2では
$smarty->assign('pref', array('01' => '北海道', '02' => '青森')); {$pref.01} で北海道が取れていたのだけど、 Smarty3Beta板では {$pref['01']} としないと取れなくなったのは仕様変更ですか?
- 852 名前:nobodyさん [2010/01/18(月) 14:06:25 ID: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}を使おうと思ってるんですが・・・
- 853 名前:nobodyさん mailto:sage [2010/01/18(月) 14:25:16 ID:???]
- >>852
html_checkboxes使うの?それとも手動でやるの?
- 854 名前:nobodyさん mailto:sage [2010/01/18(月) 15:07:42 ID:???]
- >>853
手動です html_checkboxesのほうがやりやすいのでしょうか?
- 855 名前:nobodyさん mailto:sage [2010/01/18(月) 15:59:06 ID:???]
- >>854
foreachでやるなら普通にループさせて 要素を出すところでifで比較してchecked入れればいいんじゃない? $fugaのデータ構造がそのまま使えなくてちょい面倒だけど 予め使いやすいように変換するか、更にループさせて全件比較すればいいかと
- 856 名前:nobodyさん [2010/01/20(水) 22:11:47 ID:q80CCbb+]
- 以下のようにinterfaceによる拡張を試しています。
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のコードを追加するのは無理でしょうか。
- 857 名前:856 mailto:sage [2010/01/20(水) 23:35:47 ID:???]
- すみません、しばらく考えていたのですが、断念することにしました。
拡張も考えてみたのですが、もとがphp4ですから、こちらのPHP環境と合わせて考えると サブクラスで定義した"クラス定数"をテンプレートから呼び出すことは おそらく無理と判断しましたm(_ _)m 確かなことは言えませんが、クラスを変数で参照できるphp5.3以降でなら プラグイン等で機能追加できるような気がします。
- 858 名前:nobodyさん mailto:sage [2010/01/21(木) 04:40:11 ID:???]
- php4だから無理ってどういうこっちゃ?どこに書いてあるん?
マニュアルの例はもうちょっと落ち着いて見直してみたほうがいいと思うけど
- 859 名前:nobodyさん mailto:sage [2010/01/29(金) 18:46:34 ID:???]
- インサートプラグインの中でもテンプレート指定してキャッシュさせてるけど
インサートプラグインが1ページに5、6個あるとかなり速度低下してきてしまう
- 860 名前:nobodyさん mailto:sage [2010/01/30(土) 00:48:00 ID:???]
- >>859
そんな、あなたにsmarty3の出番ですよ。 プラグインを書く必要ないぞ。
- 861 名前:859 mailto:sage [2010/01/30(土) 10:34:45 ID:???]
- え、そうなの?プラグイン書かなくていいってどういうことですか?
今は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だと改善されてるんでしょうか?
|

|