【Smarty】PHPのテンプレートエンジン【Flexy】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/06/15(水) 10:35:52ID:???PHPのテンプレートエンジンを語るスレです。
Smarty:本家(英語)
http://smarty.php.net/
Smarty:日本語マニュアルとか
http://sunset.freespace.jp/smarty/
pear の HTML_Template たち
http://pear.php.net/package/HTML_Template_Flexy
http://pear.php.net/package/HTML_Template_IT
http://pear.php.net/package/HTML_Template_Sigma
http://pear.php.net/package/HTML_Template_Xipe
http://pear.php.net/package/HTML_Template_PHPLIB
patTemplate
http://www.php-tools.de/
http://www.php-j.com/tutorial/php/template.php
前スレ(現在dat落ち)【PHP】Smarty【Template】
http://pc8.2ch.net/test/read.cgi/php/1047225437/
0003nobodyさん
2005/06/15(水) 20:42:41ID:???0004前スレ984
2005/06/15(水) 22:16:41ID:???前スレッドの質問なんですが分かる人がいましたら、よろしくお願いします。
0005nobodyさん
2005/06/16(木) 01:43:00ID:???0006nobodyさん
2005/06/20(月) 19:46:15ID:???0007nobodyさん
2005/06/23(木) 10:42:54ID:???fileとbasedirをちゃんと設定してみてください。
0008nobodyさん
2005/06/24(金) 23:10:25ID:pYTM6kF20009nobodyさん
2005/06/24(金) 23:26:06ID:???この辺に書いてあるかな。
ttp://smarty.incutio.com/?page=SmartyFrequentlyAskedQuestions#other-1
0010nobodyさん
2005/06/25(土) 00:10:27ID:???ということは、例えば掲示板を作ったとして
書き込むのにお金を取るみたいなことも可能ですか?
0011nobodyさん
2005/06/25(土) 01:08:43ID:???モジュール毎か?
0013nobodyさん
2005/06/26(日) 06:20:15ID:???0015nobodyさん
2005/06/26(日) 11:39:53ID:???0016nobodyさん
2005/06/26(日) 13:16:50ID:???スマーチィで実現させる場合、
capture関数を使うみたいだけど、
スマーチィ内で使用する変数名が、各テンプレートでバッティングしないように
気を遣わなくちゃいけないよね?
なんか面倒くない?
0017nobodyさん
2005/06/26(日) 13:17:48ID:???だった
0018nobodyさん
2005/06/26(日) 13:19:16ID:???何だこれ使えばいいじゃん
馬鹿だ俺テヘヘ
ウヘラウヘラ
001913
2005/06/26(日) 13:20:03ID:???よろしくメカドック
0021nobodyさん
2005/06/26(日) 22:56:02ID:???0023nobodyさん
2005/06/27(月) 03:54:06ID:???0024nobodyさん
2005/06/27(月) 08:51:48ID:???0025nobodyさん
2005/06/29(水) 02:14:48ID:???両方使ったことある人どっちがおすすめですか?
0026nobodyさん
2005/06/29(水) 03:53:03ID:???0027nobodyさん
2005/07/07(木) 11:54:00ID:???0028nobodyさん
2005/07/07(木) 14:53:10ID:???関係ないけどSmarty他のファイルベースのキャッシュってどうなんだろ?
UNIXって同じディレクトリにファイルが何千もあると遅くなるって
聞いたことがあるし
inode使いまくりだから抵抗がある。
特にコンテンツ構成が変わる動的生成のページだったらキャッシュが山ほど増えそうだし。
SQLiteでやればいいんじゃないかなぁと思ってるんだけど。
DBクラス等でSQLiteをキャッシュに使ってる人いない?
0029nobodyさん
2005/07/07(木) 15:27:32ID:???inodeの実装によるような。
ディレクトリを線的探索する場合はファイル数に比例して
パフォーマンスは落ちるだろうけど、数千程度で実感する
パフォーマンスの低下は起きないんでないかな?
10年程前のLinuxのカーネルは確か1つのディレクトリに確保できる
ファイル数が限られるという制約があったと思うけど今はそんなこと
ないはずだし。
> SQLiteでやればいいんじゃないかなぁと思ってるんだけど。
それは本末転倒ではないか?素直にディレクトリ走査した方が早い気がする。
0030nobodyさん
2005/07/07(木) 15:39:47ID:???0031nobodyさん
2005/07/07(木) 16:17:13ID:???1テンプレート1キャッシュだし
0033nobodyさん
2005/07/08(金) 05:03:05ID:???一体どこらへんが?
0034nobodyさん
2005/07/08(金) 07:08:49ID:???ここらへん。
0036nobodyさん
2005/07/08(金) 10:38:17ID:???パラメータでキャッシュID振るんでしょ?そんときキャッシュディレクトリも
分けちゃえばいいんじゃないの?
0037nobodyさん
2005/07/10(日) 09:56:24ID:???この書き方でsyntaxエラーが出てしまったんですが、クラス変数を使って配列から取得したいんですが
書き方間違ってたら教えてください。
ちなみに、{$array.$obj->name}でも{$array[$obj]->name} こう変換されてしまってだめでした。
0038nobodyさん
2005/07/10(日) 12:55:05ID:???{$assing var=obj_name value=$obj->name}
{$array.obj_name}
0041nobodyさん
2005/07/15(金) 08:38:00ID:UMRZ8BPd0042nobodyさん
2005/07/15(金) 08:56:51ID:???0043nobodyさん
2005/07/15(金) 09:42:30ID:sLsGcdbzSMARTYの特定のテンプレートから外部サイトへリダイレクトさせるにはどうしたらいいでしょうか?
{PHP〜でLocationヘッダ出力してもダメでした。
0044nobodyさん
2005/07/15(金) 10:10:54ID:???html: <meta http-equiv="Refresh" content="10;URL=http://www.yahoo.com/">
smarty: {if $redirect}<meta http-equiv="Refresh" content="{$redirect.sec};URL={$redirect.url}">{/if}
0046nobodyさん
2005/07/15(金) 12:11:54ID:???004743
2005/07/15(金) 15:13:39ID:sLsGcdbzおお!なるほど!ありがとう!
0049nobodyさん
2005/07/30(土) 18:10:02ID:???0050nobodyさん
2005/07/31(日) 23:47:56ID:???0051nobodyさん
2005/08/03(水) 04:47:15ID:???0052nobodyさん
2005/08/07(日) 00:22:54ID:???Smartyでググると二番目に出てくるこのサイト激しくウザい
広告だらけでほとんどが他人のサイトへのリンク
何でこんな糞サイトが上位に来るんだよ
0053nobodyさん
2005/08/07(日) 00:36:09ID:???0055nobodyさん
2005/08/07(日) 15:17:30ID:???http://manage.nekosuke.net/cms.php?mode=menu
0057nobodyさん
2005/08/17(水) 04:04:43ID:zG9hS4+hどうやって参照できるの?
$assoc.$key
って適当にやったらエラーになった
教えてクリクリ
005857
2005/08/17(水) 04:06:40ID:???なんでさっきエラーになったんだろ
すまんこ
005957
2005/08/17(水) 04:12:54ID:???エラーにならないだけだ
どうしたらいいの?
0060nobodyさん
2005/08/17(水) 04:17:51ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97+php
006157
2005/08/17(水) 04:23:31ID:???マニュアルにも載ってないところを見ると無理ぽ?
0063nobodyさん
2005/08/17(水) 18:30:38ID:???$assoc.$key => $assoc.key
マニュアルに載ってルゾルゾ
0064nobodyさん
2005/08/17(水) 19:33:53ID:???試してみたら$assoc.$keyでも$assoc[$key]でもOKだったんだが、
$keyにassignしてないとかいうオチじゃないよね?
>>63
Smartyで連想配列のキーを変数でアクセスしたいってことだと思う
0065nobodyさん
2005/08/17(水) 20:58:18ID:???$moe = array('a','b');
こんな感じので、
{foreach form=$moe item=i}{$hoge.$i}{/foreach}
こういう感じでしょ?
$iが$i.1とかだと{$hoge[$i.1]}にしないとだめなんだっけか。
0066nobodyさん
2005/08/18(木) 10:13:17ID:k8qTuvh+ほとんどそのままリプレースできんの?
使ってる人いる?
0067nobodyさん
2005/08/19(金) 11:32:37ID:???Smartyの $smarty->fetch() を使って整形した文字列を取得するスクリプトを組もうとしてるんですけど
Linuxのコンソール上で php ./test.php としてスクリプトを実行した時には問題なく動作するんですが
メールからパイプで呼び出すと
Warning: Smarty error: unable to read resource: "test.tpl"
となってしまい fetch でテンプレートをコンパイルしてくれません。
パイプからだと実行位置が違うか template_dir へのパスがうまく通ってないのかな?
と思って テンプレート指定の部分を
$smarty->fetch("file:/path/to/test.tpl");
とフルパスを与えて試したんですけど同じ結果になってしまいます。
テンプレートファイルのアクセス権も 777 にしてるのですがだめぽです。
テンプレート内のfetch関数は、セキュリティが有効な場合は$secure_dirにあるファイルしか読めないみたいなのですが
$smarty-fetch() でも何か同じような制限があるんでしょうか?
0068nobodyさん
2005/08/19(金) 11:49:29ID:???0069nobodyさん
2005/08/20(土) 00:26:52ID:CuJMKX6qその部分だけ、キャッシュを無効とかにできますのでしょうか。。
0070nobodyさん
2005/08/21(日) 10:04:09ID:???0071nobodyさん
2005/08/21(日) 13:35:48ID:???0073nobodyさん
2005/08/30(火) 02:00:43ID:Z/2p1wcU読み込み元PHPを基準?と考えて作る必要があるのでしょうか?
例えば、
/usr/local/apache2/htdocs/index.php
が
/usr/local/apache2/htdocs/templates/index.html
を読み込んで、
/usr/local/apache2/htdocs/templates/img/
中にindex.htmlで使う画像がある場合は、、、
…ドキュメントルート以下からのフルパスで全て指定するようにすれば、無問題なのかな?
どうでしょうか?
書いてる途中で気付いた、、、orz
0074nobodyさん
2005/08/30(火) 02:21:04ID:???HTMLで使う画像のパスはURIなわけで。
アクセスされたURIから見た(絶対|相対)URIになるわけだな。
0075SmartySmile
2005/09/01(木) 09:52:14ID:x5rzeuMlframexxx.tplで<frame src=xxx.tpl>みたいに指定して、
xxx.tplに<td>{$item}</td>みたいな感じで書いておいて、$itemに値をセットしてから
display(framexxx.tpl)って表示させると、
{$item}の部分がそのまま{$item}って表示されちゃいます。
srcで指定したtplの中までは解析してくれないのかな?
いい方法ないでしょうか?
0077nobodyさん
2005/09/06(火) 06:17:37ID:???ピュアPHPだとどうしても速度的にネックになりやすい部分だったDBの抽象レイヤやO/Rマッピングも
PDOが標準モジュールになったり、DB_DataObjectがPECL入りしたりしてるから、
テンプレートエンジンもモジュール化されて高速に(できれば標準に)なると嬉しいんだけど。
いくらHTML埋め込みが特徴だからって<?=を使うわけにもいかないし・・・
0078nobodyさん
2005/09/06(火) 08:45:22ID:???結局、<?=...なテンプレートをincludeする形に落ち着いたんだけど、
>>77
> いくらHTML埋め込みが特徴だからって<?=を使うわけにもいかないし・・・
なんでなんでー
0079nobodyさん
2005/09/06(火) 08:53:27ID:???0080nobodyさん
2005/09/07(水) 05:01:04ID:???short_open_tagをOnにしないと使えないから。
可搬性を考えるとOn前提のコーディングは出来ないからね
0082nobodyさん
2005/09/07(水) 10:02:52ID:???<?php echo ...
これで可搬性も担保できるお。
タイプ量が増えるからいや?
読みにくくなるいや?
0083nobodyさん
2005/09/08(木) 16:58:41ID:???>DB_DataObjectがPECL入りしたりしてるから、
ソース( ゚д゚)クレ
DBDOのこといってるの?
■ このスレッドは過去ログ倉庫に格納されています