1 名前:nobodyさん [2008/02/02(土) 00:21:09 ID:6cKcKeTp] まぬあるwww.smarty.net/manual/ja/
654 名前:nobodyさん [2009/09/02(水) 05:34:35 ID:55UeyG/q] {assign}の中で、修飾子プラグインをvalueにもたせることできますか? {assign var=uType value=$resultAry.uType|NumToText} みたいなことをしたいんですが 試してみてもタグがモロ出しになって修飾子が実行されてないようです。 仕様でしょうか? 書き方が変だとしたら、対処法を教えてください。よろしくお願いします。
655 名前:nobodyさん mailto:sage [2009/09/02(水) 09:19:59 ID:???] タグがモロ出し の意味がわからない。
656 名前:nobodyさん mailto:sage [2009/09/02(水) 09:35:13 ID:???] >>654 capture
657 名前:nobodyさん mailto:sage [2009/09/03(木) 08:24:48 ID:???] >>655 ,656 ありがとうございました
658 名前:nobodyさん mailto:sage [2009/09/06(日) 21:25:22 ID:???] 負荷テストで調べたんだが、キャッシュって結構効いてるな 1000アクセスある場合を想定してテストしたんだが、 約10〜15%ほどページの読み込みが早かった
659 名前:nobodyさん mailto:sage [2009/09/07(月) 08:07:01 ID:???] なにをいまさら・・
660 名前:nobodyさん mailto:sage [2009/09/07(月) 22:10:32 ID:???] >>659 まあ、実感するのはなかなか難しいからな。
661 名前:nobodyさん [2009/09/07(月) 23:17:57 ID:K7GASBY+] 二次元配列を出力しようとすると、 Warning: htmlspecialchars() expects parameter 1 to be string, array given in パス modifier.escape.php on line 26 というエラーが出ます。 調べたところ、色々なサイトで同じ問題を扱ってるのを見つけました。 questionbox.jp.msn.com/qa4209668.html pcmemorogu.blog14.fc2.com/blog-entry-20.html など が、これらでの答えの通り、FOREACHする配列全てに $ary|smarty:nodefaults としてみたんですが まだ完全に上記のエラーが消えません。 他にどんな可能性があるでしょうか? 配列だけでなく、通常のassignされた変数に対しても文字列でなければセットすべきなのでしょうか? とりあえずやっていますが、変化がありません
662 名前:nobodyさん mailto:sage [2009/09/07(月) 23:25:11 ID:???] アウトプットフィルタにhtmlspecialcharsが指定されてるんじゃないの? つか二次元配列を出力しなければならない例が思いつかないけど
663 名前:nobodyさん [2009/09/07(月) 23:49:42 ID:K7GASBY+] >>662 ありがとうございます すいません、お礼書きつつ修正重ねてたら上手くいきました foreachやsectionの中の配列だけでなく、ifの条件節部分でも配列に対しては|smarty:nodefaultsする必要があったようです。 if($testAry|count >0) を if($testAry||smarty:nodefaults|count >0) にしたら治りました お騒がせしました。ありがとうございました
664 名前:nobodyさん mailto:sage [2009/09/08(火) 00:19:32 ID:???] modifier.escape.phpを修正する方が早いよ
665 名前:nobodyさん [2009/09/08(火) 00:25:48 ID:qSoCHGpf] >>664 さんはそうしてますか? どう修正したらいいのやら、、と、調べたらありました。 blog.asial.co.jp/309 ----- # function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'ISO-8859-1') # { # // 配列が渡ってきたら何もせずにreturn # if (is_array($string)) return $string; # switch ($esc_type) { # case 'html': たしかにこれでよさそう。 664さんが別の方法で対応してるなら教えてもらえると嬉しいです。比べつつ勉強したいので。 自分で弄る自信はまだないんですよね、知らないところで悪影響でそうで…
666 名前:nobodyさん mailto:sage [2009/09/08(火) 00:43:09 ID:???] >>665 if (is_array($string)) return $string; で運用してるけど特に問題は無いよ。 配列が来た場合は、全ての要素を再帰的に処理するとかも試したけど、何か不都合があって止めた記憶・・・。 plugins_fix ディレクトリを作り、modifier.escape.php をコピーして修正を施す。 $smarty->plugins_dirの先頭にplugins_fixディレクトリを追加する。 って方法で修正を当てている。 default_modifiers使うと{debug}にも影響が出るから、同様に修正を当てたファイルをplugins_fixディレクトリに置いてる。
667 名前:nobodyさん [2009/09/08(火) 00:47:00 ID:qSoCHGpf] >>666 詳しい説明ほんとにありがとうございました debugってまだやったことないのでそっちはわからないですが、参考にさせてもらいます ありがとうございました。
668 名前:nobodyさん mailto:sage [2009/09/20(日) 18:33:32 ID:???] だれか公式以外でsmartyダウンロードできるところ知らない? クソ公式落ちまくっててDLできないんだけど www.smarty.net/ だれかソースくらいは分散しとけって忠告してやれよ
669 名前:nobodyさん mailto:sage [2009/09/20(日) 18:55:26 ID:???] 落とせるじゃん
670 名前:nobodyさん mailto:sage [2009/09/20(日) 19:52:57 ID:???] 復旧した
671 名前:nobodyさん mailto:sage [2009/09/24(木) 18:00:24 ID:???] 初心者なのであまり良く分からないのですが、テンプレートエンジンはSmarty以外に別のテンプレートも同時使用出来るのでしょうか? JavaScriptのライブラリのように互いに干渉してしまったりするのでしょうか? また、調べてみると、何かテンプレートを扱う為にはPHPを学んでいても1〜数週間は馴れるまでかかると書いてありました ですのでまず最初に一つテンプレートを使用してみようと思っているのですが、やはりSmartyが一番良いのでしょうか?
672 名前:nobodyさん mailto:sage [2009/09/24(木) 18:07:40 ID:???] まずテンプレート抜きでPHPを身に付けたほうがいいかと
673 名前:nobodyさん mailto:sage [2009/09/25(金) 14:31:20 ID:???] SmartyってPHP習得した後にやろうとするとハッキリ言って困惑するよな 何だコレ?って感じ 今までPHP学習してきたのってあんま意味無いじゃんって思ったよ 例えばforeachとかさ HTML?っても最初思った
674 名前:nobodyさん mailto:sage [2009/09/25(金) 14:34:03 ID:???] PHP習得した後にやらないでいつやるんだよ
675 名前:nobodyさん mailto:sage [2009/09/25(金) 15:24:47 ID:???] 誰もが通る道さ・・・ それを不毛と感じるか、テンプレートエンジンの利点に気がつけるかでPGとしての資質がわかる。
676 名前:nobodyさん mailto:sage [2009/09/25(金) 15:39:52 ID:???] いや普通につくればphpのforeachもsmartyのforeachも必要だろ。
677 名前:nobodyさん mailto:sage [2009/09/25(金) 21:46:51 ID:???] そういう事言ってるんじゃないだろ。
678 名前:nobodyさん mailto:sage [2009/09/25(金) 21:47:21 ID:???] じゃどういうことよ
679 名前:nobodyさん mailto:sage [2009/09/25(金) 22:57:18 ID:???] 同じforeachでも書き方が違って、最初戸惑うってことだろ?
680 名前:nobodyさん mailto:sage [2009/09/25(金) 22:59:20 ID:???] えっ
681 名前:nobodyさん mailto:sage [2009/09/25(金) 23:47:30 ID:???] ちゅう
682 名前:nobodyさん mailto:sage [2009/09/26(土) 02:10:40 ID:???] Smarty 3 is almost here! [24-Sep-2009] Yes, yes I know. The Smarty 3 beta is taking much longer than expected, but we wanted to be sure we had everything right. Our preliminary performance tests are already showing us very promising speed improvements over Smarty 2 (2-5x on average), and we're not done! To recap, Smarty 3 is a 100% rewrite from the ground up, and it is PHP 5 only. We will be getting a feature list up with the Beta, but let me give a quick summary:
683 名前:nobodyさん mailto:sage [2009/09/26(土) 04:04:41 ID:???] 早くなるのはいいな。でも、100%書き直したとなると、いろいろ仕様変わってるのかな。
684 名前:nobodyさん mailto:sage [2009/09/26(土) 09:50:48 ID:???] 100パー書き直したのと、仕様が変わるかどうかは直結しない話でしょう。 むしろ直結するのはバグ率。
685 名前:nobodyさん mailto:sage [2009/09/26(土) 15:22:15 ID:???] 3触ったけどまだ重くて使い物にならないよ。パーサがまともになったせいだろうけど、レンダリングがかなり遅い。 まだかなりバギーだし仕様も固まり切ってないみたいだし、正式リリースは来年末くらいじゃね。
686 名前:nobodyさん mailto:sage [2009/09/28(月) 02:57:25 ID:???] >>684 直結はしないがPHP周辺ではよくある話だな。 関数を修正してみたら引数の書き方が変わったでござるの巻
687 名前:nobodyさん mailto:sage [2009/09/28(月) 17:38:33 ID:???] Smarty以外で他にいいテンプレートって何?
688 名前:nobodyさん mailto:sage [2009/09/28(月) 19:12:27 ID:???] >>687 ttp://www.mimoi.com/product/53
689 名前:nobodyさん mailto:sage [2009/09/29(火) 19:25:53 ID:???] 一応技術板なんだしせめてこのぐらいは・・・ www.j-tsugawa.com/jt-020621-EB3101-G.jpg
690 名前:nobodyさん mailto:sage [2009/09/29(火) 19:36:34 ID:???] プラスチックが乾いてて、持ち上げようとしただけで割れてしまいそうだ・・・
691 名前:nobodyさん mailto:sage [2009/10/01(木) 12:03:22 ID:???] 流れ図記号は全部○を使っているのは俺だけだろうか。
692 名前:nobodyさん [2009/10/01(木) 18:28:48 ID:KASc2bqu] //PHP側 $list[0]["text"] = '{ImageBox file="test.jpg"}'; //テンプレート側 {foreach from=$list item="data"} {$data.text} {/foreach} 独自関数「ImageBox」で指定したファイルが表示されるようにしたいと思い、 配列をforeachで出力させようとしました。 しかし、{ImageBox}の箇所が変換されずにそのまま文字として出力されます。 指定方法が間違っているのでしょうか? わかりづらいかと思いますが、アドバイスいただければ助かります。
693 名前:nobodyさん mailto:sage [2009/10/01(木) 20:50:56 ID:???] PHP側では展開されません。
694 名前:nobodyさん mailto:sage [2009/10/01(木) 21:02:54 ID:???] そりゃ$list[0]["text"]の内容を書き出してるだけだからな。 phpなら可変関数使うところだが Smartyはプラグインで可変関数の実装を作らないとダメかも。
695 名前:692 mailto:sage [2009/10/02(金) 00:20:33 ID:???] >>694 foreachで出力される時に、 変数内のSmarty関数も変換されると思ったのですが、 どうやら違うみたいなんですね・・。 プラグインで実装させるとか、難しそうだ・・・
696 名前:nobodyさん mailto:sage [2009/10/02(金) 00:35:40 ID:???] そのImageBOXで出力されるものを$out_ImageBOXとか変数に入れ込んでおけば?
697 名前:柏アラフォーパパン& ◆.d6LNJ2fbM.9 [2009/10/02(金) 15:06:34 ID:bCUcRsfE] dsd
698 名前:nobodyさん mailto:sage [2009/10/03(土) 17:55:56 ID:???] 文字列をテンプレート処理出来るメソッドでも作ればいいんじゃないかね。 $list[0]["text"] = $smarty->fetchFromString('{ImageBox file="test.jpg"}');
699 名前:nobodyさん mailto:sage [2009/10/03(土) 17:57:12 ID:???] $list[0]["text"] = 'test.jp'; {foreach from=$list item="data"} {ImageBox file=`$data.text`} {/foreach} じゃ駄目なのか?
700 名前:nobodyさん mailto:sage [2009/10/03(土) 18:51:58 ID:???] よほど特殊な処理をさせたいのでなければ>>699 に落ち着くと思う。 まあそういうのはやはりPHPでやるべきだろうな。 smartyは最終出力だけにしておこう。
701 名前:692 mailto:sage [2009/10/04(日) 00:06:35 ID:???] >>699-700 その方法だと$listに必ず「ImageBox」が無いと駄目です。 ブログみたいに他のタグも挿入したい場合使えないので、 変数(というか配列に入れた値)に、Smartyタグを入れる事を思いつきました。 それで698さんが掻かれているようなプラグインを作って 一旦Smartyタグを処理させてから配列に入れれば、 foreachで出力しても表示されます。 しかし、当然ながらコンパイルファイルが作成されるので その分ページの生成に時間がかかることになってしまいました・・。 (キャッシュを使えば良いだけですが、なんか気になりました
702 名前:692 mailto:sage [2009/10/04(日) 00:08:43 ID:???] ちなみに以下のサイトを参考にしました。 ttp://d.hatena.ne.jp/lapis25/20080908/1220861488 >>698 さんのソースを頼りに検索したらヒットしました。 凄く参考になりました。ありがとうございます。
703 名前:nobodyさん [2009/10/11(日) 13:15:33 ID:gYB28ahJ] すみません、質問です smartyで{if}の中で出力したりすると、このsmartyタグのせいで発生した改行やらスペースやらが HTMLにもモロに出てしまって美しくありません どうにかする方法ないでしょうか?
704 名前:nobodyさん mailto:sage [2009/10/11(日) 14:25:24 ID:???] {strip}{/strip} で囲うべし。
705 名前:nobodyさん mailto:sage [2009/10/11(日) 15:23:00 ID:???] >>704 かっこわるいです。次の方お願いします。
706 名前:nobodyさん mailto:sage [2009/10/11(日) 15:43:55 ID:???] 反論ではないけど、 おれはHTMLの頭から終わりまでstripで囲ってるよ。 改行、空白によるブラウザの変なバグにも遭遇しないし、 何より若干ではあるものの軽くなる。 かっこいいかどうかで言えば、おれは改行なしのほうがかっこいいと思う。
707 名前:nobodyさん mailto:sage [2009/10/11(日) 16:11:57 ID:???] 意図した改行を入れたい場合はどうしてるん? <textarea>の中身とか
708 名前:nobodyさん mailto:sage [2009/10/11(日) 17:59:26 ID:???] >>704 おおー、そうだそれがありました ありがとうございました >>707 <textarea><$hoge|nl2br></textarea>じゃ対処できないもの?
709 名前:nobodyさん mailto:sage [2009/10/11(日) 18:22:54 ID:???] 改行を残したい箇所を 逆にliteralで囲う。
710 名前:nobodyさん mailto:sage [2009/10/12(月) 00:52:20 ID:???] JavaScriptとか、改行に意味を持つ言語が混在する可能性を考えると一括して{strip}するのは得策じゃない気がする。
711 名前:nobodyさん mailto:sage [2009/10/13(火) 01:13:00 ID:???] >>703 そこまで気にするなら {if} {assign var="hoge"} {else} {assign var="hoge"} {/if} <textarea> {$hoge} </textarea>
712 名前:nobodyさん [2009/10/13(火) 23:52:48 ID:B+0jNtpm] Smarty3期待アゲ
713 名前:nobodyさん [2009/10/14(水) 00:10:46 ID:k/3ZY/k4] 質問です。 ↓の、アンパサンドって何の意味があるのでしょうか? $smarty =& new Smarty;
714 名前:nobodyさん mailto:sage [2009/10/14(水) 00:27:06 ID:???] 参照代入
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って機能があったんだね、この辺から調べてみるよ たすかったわほんと、ありがとね